java - アクセス - HashMapは値を非順次的に返します



java map マージ (2)

Mapインターフェイスのハッシュテーブルとリンクリストの実装であるLinkedHashMapを使用できます。

二重リンクリストを使用して値が挿入される順序と同じ順序を維持します。

リファレンス: http : //docs.oracle.com/javase/1.4.2/docs/api/java/util/LinkedHashMap.html

異なるキーを持つ4つの値をHashMapに挿入しています。 コードスニペット :

HashMap<Integer, String> choice = new HashMap<Integer, String>();

choice.put(1, "1917");
choice.put(2, "1791");
choice.put(3, "1902");
choice.put(4, "1997");

しかし、私はそのマップ値を印刷しているとき、次のような結果を返します。

{4 = 1997,1 = 1917,2 = 1791,3 = 1902}

配置/挿入された順番に地図の値を取得するにはどうすればよいですか?


代わりLinkedHashMapを使用すると、挿入順序が維持されます。

この実装は、すべてのエントリを実行する二重リンクリストを維持するという点でHashMapとは異なります。 このリンクリストは、通常、キーがマップに挿入された順序(挿入順序)である反復順序を定義します。

あなたは次のようにコードを修正することができます:

Map<Integer, String> choice = new LinkedHashMap<Integer, String>();

//rest of the code is the same




hashmap