Java流排序不起作用

Vik*_*h B 0 java sorting java-8 java-stream

我有一个

HashMap<String,Integer> map 
Run Code Online (Sandbox Code Playgroud)

我希望按值按降序排序:

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()));
Run Code Online (Sandbox Code Playgroud)

但topsorted仍然与地图相同,根本没有进行排序

有人可以解释我做错了什么

Kay*_*man 5

HashMap没有订购.你不能对它进行排序.

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