1
我想通过使用JDK 8样式函数对值进行排序。虽然我得到了排序部分,但我不确定如何在TreeMap中收集结果。有人可以解释如何在声明式风格中完成这件事吗?我需要收集到另一个Map<String, String>
。Java 8 - 按值分类映射并收集结果
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())
;
收集到'TreeMap'中是毫无意义的,因为它不会保留排序顺序,而是会自己按键排序。您将需要收集到保存映射顺序的映射,如“LinkedHashMap”。请参见[如何在Java流中按降序对值排序LinkedHashMap?](http://stackoverflow.com/q/29860667/3920048)。 – Misha
谢谢@misha。我能够使用LinkedHashMap解决它。 – MFIhsan