这个问题已经在这里有了答案: > How can I sort a Map based upon on the size of its Collection values? 2个
有没有一种方法可以按值对映射条目进行排序,而值是一个集合?我想按条目集合的大小对条目进行排序.到目前为止,我的代码:
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));
}
最佳答案
您可以通过Comparator.comparingInt将其用作:
return myMap.entrySet()
.stream()
.sorted(Comparator.comparingInt(e -> e.getValue().size()))
.collect(Collectors.toMap(Map.Entry::getKey,LinkedHashMap::new));