首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java 8 Lambdas --按位与操作

Java 8 Lambdas --按位与操作
EN

Stack Overflow用户
提问于 2017-02-16 20:11:15
回答 3查看 2.9K关注 0票数 16

我目前正在解决在Java8中使用Lambdas进行逐位操作的for循环的转换问题。

给定一组复杂的条目,循环需要遍历所有条目并对它们调用给定的方法(方法返回布尔值)。之后,返回结果。

换句话说,我需要在所有条目上调用该方法并存储结果。这背后的原因是,每个条目都独立地执行一个复杂的操作,必须执行。最终结果是结果的组合。

代码片段:

代码语言:javascript
复制
boolean areAllSuccessful = true;
for (SomeEntry entry : entries) {
     areAllSuccessful = areAllSuccessful & entry.doComplexAction(); // keep calling the method on other entries regardless of the result.
}

return areAllSuccessful;

问题是Java 8中的Lambda函数通常执行短路操作(一旦检测到错误条目,“循环”就会中断并返回错误结果)。

到目前为止,我最好的解决方案是使用map/filter/count组合:

代码语言:javascript
复制
return entries
       .stream()
       .map(entry -> entry.doComplexAction())
       .filter(result -> result == false)
       .count() > 0

有没有更聪明/更干净的方法呢?

谢谢!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42273590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档