java - boolean 值流,是真的吗?

标签 java lambda parallel-processing java-8 java-stream

我想并行化使用 parallelStream 截断的以下代码:

boolean anyTrue() {
  for (Element e : setOfE) {
    if (eval(e)) {
      return true;
    }
  }
  return false;
}

以下是否适用于并行流并使用常规短路评估?

setOfE.parallelStream().map(e -> eval(e)).reduce(false, (a,b) -> a || b))

最佳答案

Streams API 实际上为您的要求提供一流的支持:

setOfE.parallelStream().anyMatch(e -> eval(e));

与您使用 reduce 的方法相反,这可以保证进行短路评估并以最佳方式利用并行性。

关于java - boolean 值流,是真的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26304858/

相关文章:

.net - 如何在不使用字符串名称的情况下引发 PropertyChanged 事件

scala - 模拟 Scala ParStream

java - 如何使用Future<T>接口(interface)?

java - 为什么我应该使用 Deque 而不是 Stack,使用 LinkedList 而不是 Queue?

java - Spring Data 总是返回一个带有反应式 mongo 存储库的空数组

java.net.SocketPermission : "connect.resolve"

Haskell monad流理解

java - 测试 pico cli 命令,Java

Java 8 : How to sort and collect two nested Maps with ArrayList inside?

python - 使用并行运行 html2text