JAVA 如何快速对Map进行按照Value排序
JAVA 中的TreeMap支持根据Key进行排序,默认为升序排序,可以传入比较器进行自定义排序,那如何根据Value进行排序呢
- 按照Key进行排序
Mapmap = new TreeMap<>(new Comparator (){ public int compare(String o1,String o2){ return o2.compareTo(o1); //用正负表示大小值 } }); // lambda表达式写法 // Map map1 = new TreeMap<>((o1,o2)->o2.compareTo(o1));
复制代码
2. 按照Value进行排序
1.使用List进行排序 Mapmap = new HashMap<>(); map.put("3","7"); map.put("2","5"); map.put("1","6"); List > list = new ArrayList<>(map.entrySet()); list.sort(Comparator.comparing(Map.Entry::getValue)); Map map2 = new linkedHashMap<>(); for(Map.Entry entry: list){ map2.put(entry.getKey(), entry.getValue()); } map2.forEach((o1, o2)-> System.out.println(o1+":"+o2));
复制代码
2.使用JAVA 8 Stream进行排序
Mapmap = new HashMap<>(); map.put(1, "Tommy"); map.put(3, "Jerry"); map.put(2, "Catty"); // 正序 map.values().stream().sorted().collect(Collectors.toList()).forEach(System.out::println); // 逆序 map.values().stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList()) .forEach(System.out::println);
对List
第一种方法 // List
r"))));



