は、私は次のように定義されたHashMapを持っている:私は、彼らがキーに基づいてアルファベット順に終わるこのHashMapのに新しいエントリを置くハッシュマップはアルファベット順に配置されていますか?
private final Map<String, DataTable> reports = new HashMap();
。なぜこれをやっているのですか?どのように私はそれらをHashMapに追加した順に並べるのですか?
は、私は次のように定義されたHashMapを持っている:私は、彼らがキーに基づいてアルファベット順に終わるこのHashMapのに新しいエントリを置くハッシュマップはアルファベット順に配置されていますか?
private final Map<String, DataTable> reports = new HashMap();
。なぜこれをやっているのですか?どのように私はそれらをHashMapに追加した順に並べるのですか?
HashMap
は、追加する要素の順序を明示的に定義しません。 HashSet
の場合と同様に、要素はハッシュコードによって整列していますが、これは多かれ少なかれランダムです。
マップの順序を挿入順に保持する場合は、代わりにLinkedHashMapを使用できます。挿入後に要素をソートする必要がある場合は、TreeMapを使用します。
ハッシュマップの全体的なポイントは、挿入と検索のパフォーマンスが向上し、その他の利点が得られるように、注文の管理を放棄することです。注文の管理を取り戻すには、SortedMapを調べてください。
LinkedHashMap- preserve the insertion order.
TreeMap - Elements sorted after insertion.
HashMapは挿入された要素の順序を維持しません。
HashMapは値を追加する方法ではなく、キーに基づいてランダムに値を追加します。追加する順序で値を追加するには、LinkedHashMap
を使用するか、マップをアルファベット順にソートしたい場合はTreeMapを使用します。私はこれがあなたの疑いを解消することを願っています
「アルファベット順で終わる」とはどういう意味ですか?もっとコードを表示できますか? – arshajii
ハッシュマップは発注されていません。 TreeMapsはあります。 – bcsb1001
文字列の自然順序**はアルファベット順であり、 'HashMap'は順序付けされていません。 – Kayaman