【发布时间】:2019-03-16 04:41:06
【问题描述】:
我正在比较 2 个地图使用 Java 8 功能,并根据条件想要返回结果。使用 .forEach 显示编译时错误,基本上,返回是从 Lambda 表达式返回,而不是从循环返回。如何从包含 lambda 的循环中返回?
请注意,我不是在比较两个地图对象的相等性
nMap.forEach((k,v) -> {
if (!mMap.containsKey(k) || mMap.get(k) < v) {
return -1;
}
});
【问题讨论】:
-
将完整代码与循环一起发布
-
foreach方法接受了Comsumer。这意味着void方法。你可以在里面返回。 -
这是完整的循环代码!
-
forEach(..) 具有消费者类型的参数。消费者接口有抽象方法( void accept(...).. 所以简而言之,你的 lambda 不应该从那里返回任何东西。
-
Comparing two maps的可能重复
标签: java lambda foreach java-8 java-stream