マップを値でソートする方法
マップを値でソートする方法については以前記事にしたのだけれども、
マップを値でソートするメソッド - Java初心者の競技プログラミング日記
あまりに冗長すぎるのでもっと短く書ける方法を探した。見つかった。
//昇順 map = map.entrySet().stream() .sorted(Entry.<String,Integer>comparingByValue()) .collect(Collectors.toMap(Entry::getKey,Entry::getValue,(e1, e2)->e1,LinkedHashMap::new)); //降順 map = map.entrySet().stream() .sorted(Entry.<String,Integer>comparingByValue().reversed()) .collect(Collectors.toMap(Entry::getKey,Entry::getValue,(e1, e2)->e1,LinkedHashMap::new));
java.util.Map.Entry と java.util.stream.Collectors をインポートしてある。
以下のサイトを参考にしました
How to Sort Map by values in Java 8 using Lambdas and Stream - Example Tutorial | Java67