java8使用lambda对Map排序

来源:互联网 发布:linux执行sql文件 编辑:程序博客网 时间:2024/04/26 08:02

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>>() {@Overridepublic 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());});}




0 0