Abh*_*agi 8 java foreach lambda java-8 java-stream
我正在使用Java 8功能比较2个地图,并根据条件想要返回结果.使用.forEach显示编译时错误,基本上,返回是从Lambda表达式返回而不是从循环返回.如何从包围lambda的循环返回?
请注意,我没有比较两个地图对象的相等性
nMap.forEach((k,v) -> {
if (!mMap.containsKey(k) || mMap.get(k) < v) {
return -1;
}
});
Run Code Online (Sandbox Code Playgroud)
使用Stream的entrySet()和anyMatch,而不是forEach:
boolean found =
nMap.entrySet()
.stream()
.anyMatch(e -> !mMap.containsKey(e.getKey()) || mMap.get(e.getKey()) < e.getValue());
if (found)
return -1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2134 次 |
| 最近记录: |