繁体   English   中英

Java 8流 - 查找Map的最大计数值 <String, List<Object> &gt;

[英]Java 8 stream - Find max count values for Map<String, List<Object>>

我对Java 8并不熟悉,并希望看看我是否可以使用流找到与下面代码相同的东西。

下面的代码主要尝试查找具有最大值数的键并返回该键。 在这种格式的任何地方我找不到多少帮助。

int max = 0;
String maxValuesString = null;
for (Map.Entry<String, List<String>> entry : map.entrySet()) {
    if(max < entry.getValue().size()) {
        maxValuesString = entry.getKey();
        max = entry.getValue().size();
    }
}

您可以使用max和比较器来检查值的大小

String maxValuesString = map.entrySet()
            .stream()
            .max(Comparator.comparingInt(entry -> entry.getValue().size()))
            .map(Map.Entry::getKey) 
            .orElse(null);

编辑 :由于以下评论由Andreas用于清洁optional.map

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM