使用 Lambda 对 Map 进行排序

这真的就是一个代码笔记,使用 Lambda 对 Map 排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("第一", 1);
map.put("第三", 3);
map.put("第二", 2);
System.out.println(map);
Map<String, Integer> linkedHashMap = map.entrySet().stream()
// 对 value 从小到大排序
.sorted(Comparator.comparing(o -> o.getValue()))
// 收集为 LinkedHasMap
.collect(Collectors.toMap(
Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new)
);
System.out.println(linkedHashMap);
}

结果

1
2
{第三=3, 第一=1, 第二=2}
{第一=1, 第二=2, 第三=3}