我有 map Map<Type, Long> countByType
并且我想要一个列表,该列表按其对应的值对(最小到最大)键进行排序。我的尝试是:
countByType.entrySet().stream().sorted().collect(Collectors.toList());
但是这只是给了我一个条目列表,我怎样才能得到一个类型列表,而不会丢失顺序?
最佳答案
你说你想按值排序,但你的代码中没有。将 lambda(或方法引用)传递给 sorted
以告诉它您要如何排序。
你想拿到 key ;使用 map
将条目转换为键。
List<Type> types = countByType.entrySet().stream()
.sorted(Comparator.comparing(Map.Entry::getValue))
.map(Map.Entry::getKey)
.collect(Collectors.toList());
关于Java 8 流映射到按值排序的键列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30425836/