HashMapの内容を印刷する方法 値に基づいて昇順で?質問する

HashMapの内容を印刷する方法 値に基づいて昇順で?質問する

HashMapこれを昇順で印刷する必要があります価値観そこに含まれる(鍵ではない)。

しかし、印刷したときの順序はランダムのようです。

印刷する最良の方法は?昇順?

Map<String, String> codes = new HashMap<String, String>();

codes.put("A1", "Aania");
codes.put("X1", "Abatha");
codes.put("C1", "Acathan");
codes.put("S1", "Adreenas");

つまり、上記の例は次のように印刷されます。

A1, Aania
X1, Abatha
C1, Acathan
S1, Adreenas

ベストアンサー1

HashMap クラスだけではこれを実行することはできません。

私は を取得し、マップの値をキーにマッピングするMap<String, String> codesの逆マップを構築します(これには、元のマップにキーから値への 1 対 1 のマッピングが必要です)。 TreeMap は、エントリをキーの昇順で返す Iterators を提供するため、これにより、最初のマップの値とキーの組み合わせが、必要な順序 (値でソート) で得られます。TreeMap<String, String> reversedMapcodes

Map<String, String> reversedMap = new TreeMap<String, String>(codes);

//then you just access the reversedMap however you like...
for (Map.Entry entry : reversedMap.entrySet()) {
    System.out.println(entry.getKey() + ", " + entry.getValue());
}

同様の双方向マップ実装を持つコレクション ライブラリ (commons-collections、Google Collections など) がいくつかあります。

おすすめ記事