【发布时间】:2015-07-09 09:31:51
【问题描述】:
我有一个
HashMap<String,Integer> map
我想按值降序排序 我愿意:
HashMap<String,Integer> topSorted = new HashMap<>();
//sort map in descending order
Stream<HashMap.Entry<String,Integer>> st = map.entrySet().stream();
st.sorted(Comparator.comparing((HashMap.Entry<String,Integer> e) -> e.getValue()).reversed())
.forEach(e -> topSorted.put(e.getKey(),e.getValue()));
但是 topsorted 仍然和 map 一样,根本没有排序
谁能解释我做错了什么
【问题讨论】:
-
除了接受的答案解释的错误之外,您应该注意您可以简单地使用
comparingByValue(Comparator.reverseOrder())... -
@Holger 哇,我不知道,谢谢!
标签: java sorting java-8 java-stream