百度刷自己网站的关键词,平面设计实习报告,地方门户网站源码下载,十大app开发公司Map按照Value值进行排序的实现
map.entrySet().stream().sorted(Comparator? super T comparator)给定一个map#xff0c;存储一个nums数组中每一个数字存储的次数#xff0c;最后将这个map按照value值#xff0c;即出现的次数进行排序
第一种方式#xff1a;返…Map按照Value值进行排序的实现
map.entrySet().stream().sorted(Comparator? super T comparator)给定一个map存储一个nums数组中每一个数字存储的次数最后将这个map按照value值即出现的次数进行排序
第一种方式返回的是降序以后的新的map
Testpublic void test04() {int[] nums {1,2,3,1,3,4,6,7,9,9,1,3,4,5};MapInteger,Integer map new LinkedHashMap();for (int i 0; i nums.length; i) {map.put(nums[i],map.getOrDefault(nums[i],0) 1);}//对map的value进行排序并返回降序以后的map集合LinkedHashMapInteger, Integer collect map.entrySet().stream().sorted((entry1, entry2) - {return entry2.getValue() - entry1.getValue();}).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,(oldValue, newValue) - oldValue, LinkedHashMap::new));collect.forEach((key,value) - {System.out.println(key : value);});}输出结果
1: 3
3: 3
4: 2
9: 2
2: 1
6: 1
7: 1
5: 1第二种方式返回的是value降序的集合List
Testpublic void test05() {int[] nums {1,2,3,1,3,4,6,7,9,9,1,3,4,5};MapInteger,Integer map new LinkedHashMap();for (int i 0; i nums.length; i) {map.put(nums[i],map.getOrDefault(nums[i],0) 1);}//按照map的value进行排序并返回最后的value的降序的集合ListInteger collect map.entrySet().stream().sorted((entry1, entry2) - entry2.getValue().compareTo(entry1.getValue())).map(entry - entry.getValue()).collect(Collectors.toList());collect.forEach(System.out::println);}输出结果
3
3
2
2
1
1
1
1