java-如何在地图值是集合的情况下按值大小对地图条目进行排序?

前端之家收集整理的这篇文章主要介绍了java-如何在地图值是集合的情况下按值大小对地图条目进行排序? 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

这个问题已经在这里有了答案:            >            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));

猜你在找的Java相关文章