JAVAでのHashMapのソート方法は?

Javaでは、HashMapは順序が定まらず、キーと値のペアを特定の順序で保存しません。HashMapの要素を並べ替えたい場合は、TreeMapなどの有序なコレクションに変換することができます。

TreeMapは、赤黒木をベースとした順序付けられたマップであり、キーの自然順序またはカスタムのComparatorに基づいてソートされます。次に、キーでHashMapをソートするためにComparatorを使用する例を示します。

import java.util.*;

public class SortHashMap {
    public static void main(String[] args) {
        HashMap<String, Integer> hashMap = new HashMap<>();
        hashMap.put("Tom", 30);
        hashMap.put("Alice", 25);
        hashMap.put("Bob", 35);
        hashMap.put("John", 40);

        TreeMap<String, Integer> sortedMap = new TreeMap<>(new Comparator<String>() {
            public int compare(String s1, String s2) {
                return s1.compareTo(s2); // 按照键的自然顺序排序
            }
        });
        sortedMap.putAll(hashMap);

        for (Map.Entry<String, Integer> entry : sortedMap.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }
}

結果の表示:

Alice: 25
Bob: 35
John: 40
Tom: 30

この例では、最初にHashMapを作成し、いくつかのキーと値のペアを追加します。次に、TreeMapを作成し、自作のComparatorを渡します。このComparatorはキーの自然な順序に基づいて比較を行います。最後に、putAll()メソッドを使用してHashMapの要素をTreeMapに配置し、entrySet()を使用して順序付けされたキーと値のペアを反復処理します。

bannerAds