在 java 8 中,可以使用 Stream API 按值对Map进行排序 ,Map.Entry
类具有静态方法 comparingByValue()
来按值排序。
此方法返回一个 Comparator
,它按值的自然顺序比较 Map.Entry
。
我们还可以自定义Comparator,根据要求进行排序
Map<String, Integer> unSortedMap = getUnSortedMap(); System.out.println("Unsorted Map : " + unSortedMap); LinkedHashMap<String, Integer> sortedMap = new LinkedHashMap<>(); unSortedMap.entrySet() .stream() .sorted(Map.Entry.comparingByValue()) // .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) 倒序排序 .forEachOrdered(x -> sortedMap.put(x.getKey(), x.getValue())); System.out.println("Sorted Map : " + sortedMap);
日期:2020-09-17 00:09:28 来源:oir作者:oir