Java 流排序不起作用

标签 java sorting java-8 java-stream

我有一个

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一样,根本没有进行排序

谁能解释一下我做错了什么

最佳答案

HashMap 未排序。您无法对其进行排序。

您可以使用LinkedHashMap,它为您提供特定的迭代顺序。

关于Java 流排序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31313531/

相关文章:

r - 对 dist() 的输出进行排序

c++ - 数组中元素的自定义排序

java - 如何用函数式风格的表达式替换 if(Optional.isPresent())

java - "IllegalArgumentException occurred while calling setter for property"从sqlserver数字到java对象

java - 使用 '%' 将 String 转换为 double

java - Java中的HttpRequest : Always goes to 404

java - 如何检查 URL 是否被我的防火墙阻止

PHP按字段排序数组?

java - 以功能方式使用 Rest Service

JavaFX8 禁用 ScrollPane 的滚动