[Java]MapのKeyで昇順・降順ソートする方法

java

JavaのMapのKeyで昇順・降順ソートする方法を紹介していきます。
今回はstreamを使ってソートをしていくので、Javaバージョンは8を対象としています。

[スポンサーリンク]

目次

昇順ソート
降順ソート

昇順ソート

public static void main( String[] args ) {

    Map<Integer, String> map = new HashMap<>();
    map.put(1, "test222");
    map.put(2, "test111");

    // 昇順
    map.entrySet().stream()
        .sorted(java.util.Map.Entry.comparingByKey())
        .forEach(s -> System.out.println(s));
}
>実行結果
1=test222
2=test111

降順ソート

降順は、reversedを使っていきます。

public static void main( String[] args ) {

    Map<Integer, String> map = new HashMap<>();
    map.put(1, "test222");
    map.put(2, "test111");

    // 降順
    map.entrySet().stream()
        .sorted(java.util.Collections.reverseOrder(java.util.Map.Entry.comparingByKey()))
         .forEach(s -> System.out.println(s));
}
>実行結果
2=test111
1=test222

さいごに

Streamを使えば、Mapのソートも1行で書くことができます!(少々長いですが。。)
Mapのソート方法ですが使用頻度も少なくはないはずです。もきちんと抑えておきましょう!

それでは!