我们都知道,hashmap本身是无序的,不可能做到排序,但是有时候又要排序该怎么办呢?
既然hashmap不行,那么有没有那种map集合是有序的呢?当然有,linkedhashmap就是其中的一种
所以解决问题的思路就是将hashmap转成linkedhashmap就好了
那么该如何转呢?这里推荐使用java8的stream流操作来转化
Map<String, Integer> unsortedMap= new HashMap<>();
unsortedMap.put("a",1);
unsortedMap.put("b",2);
unsortedMap.put("c",3);
LinkedHashMap<String, Long> sortedMap= new LinkedHashMap<>();
unsortedMap.entrySet().stream()
.sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
.forEachOrdered(s->sortedMap.put(s.getKey(),s.getValue()));