私は、HashMap
とHashSet
の両方が順番に値を返していないのだろうかと疑問に思っていましたか? 誰か明確にしてください。 私は混乱しています。なぜこれらの2つが必要ですか?HashMapとHashSet値の順序は何ですか
答えて
単語で - はい。 HashMap
またはHashSet
は、反復の順序を保証しません。
HashMapには、キー値のペアが格納されます。 HashSetは、繰り返しのないオブジェクトの順序付けられていないコレクションです。必ずしも順番に挿入されていなくても反復されない。順序付けられた実装がありますが、標準のHashMapまたはHashSetクラスは使用しません。さらにhere
Linked Hash Mapについて話しました
は、あなたが順番に値をしたい場合、あなたは賢明なあなたはどこのキーでソートするのTreeMapを使用することができ、他のLinkedHasmapを使用する必要が挿入挿入順
を維持しません。ハッシュは、オブジェクトに依存して変化する可能性のある値を順序付けするためにハッシュコードを使用するため、順序を与えません。
HashMapはMapインターフェイスの実装です。地図は、Aが、我々は1を探したびは、特派員は「テスト」であることを知っているような場合にはB.
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(new Integer(1), "Test");
に対応していることを言うためのデータ構造です。
セットは全く異なるものです。 Setsは、コレクションに複製オブジェクトが存在しないことを保証します。 HashSetはSetインターフェイスの実装です。あなたはそれをラッピングのLinkedHashMap、LinkedHashSetの、ArrayListを(Listインタフェースの実装)など
を使用することができます順番に挿入し、何かを取得するに
:
- 地図 - オブジェクト
- セットの対応します - コレクション内の一意のオブジェクトを確認する
質問は順序であり、地図とセットの違いではありません –
@SteveKuo質問は** "私は混乱しています、なぜこれら2つが必要ですか?" ** –
本当に 'java.util.Map'には'set'メソッド? – Bedla
HashMap
APIは反復の順序を定義しません。
しかし、HashMapの実装を見ると、反復順序、キーのハッシュ値、キーが挿入された順序、およびハッシュテーブルのサイズの間に複雑な過渡的な関係があることが推論できます。この関係は、ハッシュテーブル自体のサイズが変更された場合にスクランブルされます。
参照してください:特に
Is the order of values retrieved from a HashMap the insertion order
- 1. EqualsとHashMap/HashSet
- 2. HashSetは列挙間の順序を保持しますか?
- 3. Akka.Persistenceリカバリの順序は何ですか?
- 4. oracleのNULL値の並べ替え順序は何ですか
- 5. HashSet/HashMap(カスタムハッシャー)のTreeSet/TreeMap
- 6. 'and'と 'or'の操作の順序は何ですか? Pythonで
- 7. Python dictの__hash__と__eq__評価の順序は何ですか?
- 8. なぜHashMapはHashSetより速いのですか?
- 9. デコレータの実行順序とは何ですか?
- 10. 順序木と根木の違いは何ですか? - 例
- 11. 挿入順序でHashMap値を追加および削除する方法
- 12. Java Hashmapのタイピングシステムとは何ですか?
- 13. VBAコードでの私の操作の順序は何ですか?
- 14. MYSQLでこのクエリのデフォルトの順序は何ですか?
- 15. この連結での操作の順序は何ですか?
- 16. なぜHashMapが自然な順序で印刷されるのですか
- 17. メンバーの順序、派生の順序は重要ですか?
- 18. Javaヒープダンプとシャットダウン - 何の順序?
- 19. Citrusテストケースでのコード実行の順序は何ですか
- 20. Flex 3でのイベントディスパッチの順序は何ですか?
- 21. Dictはキーと値を同じ順序で返しますか?
- 22. Assembly.GetTypes()で返される型の順序は何ですか?
- 23. Railsのhas_many関係のデフォルトの順序は何ですか?
- 24. Java - このコードの初期化の順序は何ですか?
- 25. WinFormsのインスタンス化の順序は何ですか
- 26. CMultiDocTemplateのView/Doc/Frameの破棄順序は何ですか?
- 27. これらのコードの正しい順序は何ですか?
- 28. Linuxの組み込みドライバのロード順序は何ですか?
- 29. Javaのi ++の実行順序は何ですか
- 30. Values()ステップによって値が返される順序は何ですか
を参照してくださいhttps://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html、「それは保証しませんセットの反復順序に、特に順序が時間の経過とともに一定であることを保証するものではありません。 –
挿入順に反復処理できるデータ構造を探している場合は、[LinkedHashSet](https://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashSet.html)を使用できます。 )または[LinkedHashMap](https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html) – luckydog32
['SortedSet'](https://docs.oracle)の実装を使用してください。 。あなたが注文を気にしているならば、(com/javase/9/docs/api/java/util/SortedSet.html)( 'Set'のサブインターフェース)。 –