有没有一种方法可以按值对映射条目进行排序,而值是一个集合?我想按条目集合的大小对条目进行排序。到目前为止,我的代码:
public Map<Object, Collection<Object>> sortByCollectionSize() {
return myMap.entrySet().stream().sorted(Map.Entry.<Object, Collection<Object>>comparingByValue())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new));
}
答案 0 :(得分:2)
您可以通过Comparator.comparingInt
使用它,方法如下:
return myMap.entrySet()
.stream()
.sorted(Comparator.comparingInt(e -> e.getValue().size()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new));