java - Java 8,比较两张地图并返回结果
问题描述
我正在使用 Java 8 功能比较 2 个地图,并根据条件想要返回结果。使用.forEach显示编译时错误,基本上,返回是从 Lambda 表达式返回而不是从循环返回。如何从包含 lambda 的循环中返回?
请注意,我不是在比较两个地图对象的相等性
nMap.forEach((k,v) -> {
if (!mMap.containsKey(k) || mMap.get(k) < v) {
return -1;
}
});
解决方案
使用and代替: 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;
推荐阅读
- android - Flutter shared_preferences Build失败并出现异常
- tags - 基于标签运行黄瓜测试
- office-js - Office JS:漫游设置间歇性地返回未定义的给定键
- python-3.x - 字符串到数据框列 HH:MM:SS.f 中的 total_seconds
- javascript - React.js:为什么删除按钮不起作用?
- python - PyCharm 中的错误输出
- javascript - 将 Ref 通过 React Router 传递给组件?
- python - 我的训练过程不使用 Nvidia GPU
- deployment - 由于您的工厂启用了 GIT,因此您不能从“数据工厂”模式进行更改或发布
- docker - jenkins管道中docker gcloud容器内的kubectl问题