想把hashmap根据key值排序,试了好半天都不好使,不好使的语句如下:
- tempMap.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEachOrdered(x -> map.put(x.getKey(), x.getValue()));
- tempMap.entrySet().stream().sorted(Collections.reverseOrder(Map.Entry.comparingByKey())).forEach(System.out::println);
出去取了个外卖,回来找到个文章:
- 您正在使用的收集器将元素放在一个HashMap,因此排序在这里没有帮助,因为您最终将它们放在一个无序的集合中.
-
- 使用重载toMap方法,并提供一个LinkedHashMap具体的实例,即:
- Map
> sortedMap = tempMap.entrySet().stream().sorted(Map.Entry.comparingByKey()).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (a, b) -> a, LinkedHashMap::new));
用他的方法真的好使,感谢!