[英]Java 8 stream filter for Map<String, List<Object>>
[英]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.