我正在尝试使用JDK 8样式函数对其值进行排序。虽然我得到了排序部分,但我不确定如何在TreeMap中收集结果。有人可以解释如何以声明风格完成这项工作吗?
我需要收集到另一个Map<String, String>
。
Map<String, String> map = new HashMap<>();
map.put("John", "time3");
map.put("Henry", "time6");
map.put("Smith", "time1");
map.put("Rock", "time2");
map.put("Ryan", "time5");
map.put("Gosling", "time4");
map.entrySet().stream()
.sorted(Map.Entry.<String, String>comparingByValue().reversed())
;
答案 0 :(得分:1)
虽然有几个类似的问题,但我明确希望将结果存储在Map中。这是解决方案。
Map<String, String> sortedMap = map.entrySet().stream()
.sorted(Map.Entry.<String, String>comparingByValue().reversed())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (v1, v2) -> v2, LinkedHashMap::new));