我有一个HashMap需要按值排序,而且我想尽量简洁,所以我使用了Java 8。然而,各种方法都无法正常工作,我不确定为什么。我试过这个:
followLikeCount.values()
.stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toList());
这会抛出编译时异常:
Main.java:65: error: no suitable method found for sorted(Comparator<Entry<Object,V#1>>)
.sorted(Map.Entry.comparingByValue())
我看不出为什么会有观察上的不匹配。我还尝试使用比较器:
Comparator<Map.Entry<Integer, Integer>> byValue =
Map.Entry.<Integer, Integer>comparingByValue();
这会导致类似的错误。请问您能否说明为什么比较器无效?
values()
方法返回的是键值对还是仅仅是值? - markspaceentrySet()
。您可以对集合进行流处理。 - markspaceentrySet()
的方法,返回一个Set<Map.Entry<K,V>>
。 - Thomas Kläger