java8以前要对map排序比较繁琐复杂,使用java8的lambda表达式排序要简单很多,直接上代码
public static void main(String[] args) {
// 初始数据
Map<String, Integer> smap = new HashMap<>();
smap.put("1", 11);
smap.put("3", 33);
smap.put("2", 22);
// 1.8以前
List<Map.Entry<String, Integer>> list1 = new ArrayList<>();
list1.addAll(smap.entrySet());
Collections.sort(list1, new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
return o1.getValue() - o2.getValue();
}
});
for (Entry<String, Integer> entry : list1) {
System.out.println("key:" + entry.getKey() + ",value:" + entry.getValue());
}
// 1.8使用lambda表达式
List<Map.Entry<String, Integer>> list2 = new ArrayList<>();
list2.addAll(smap.entrySet());
Collections.sort(list2, (o1, o2) -> o1.getValue()-o2.getValue());
list2.forEach(entry -> {
System.out.println("key:" + entry.getKey() + ",value:" + entry.getValue());
});
}
本文对比了Java8之前和Java8之后对Map进行排序的方法,展示了如何利用Java8的Lambda表达式来简化这一过程。通过具体示例代码,读者可以清晰地看到不同版本Java中实现相同功能的差异。
849

被折叠的 条评论
为什么被折叠?



