mes*_*eso 3 java java-8 java-stream
我对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();
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用max比较器来检查值的大小
String maxValuesString = map.entrySet()
.stream()
.max(Comparator.comparingInt(entry -> entry.getValue().size()))
.map(Map.Entry::getKey)
.orElse(null);
Run Code Online (Sandbox Code Playgroud)
编辑:感谢安德烈斯在下面评论干净optional.map
| 归档时间: |
|
| 查看次数: |
456 次 |
| 最近记录: |