【发布时间】:2017-02-19 19:36:32
【问题描述】:
我想将列表的所有元素相乘,然后使用 Java 8 中的流将结果乘以 5。这是我的代码:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4);
int mul = numbers.stream().reduce(5, (acc, x) -> x * acc);
System.out.println(mul);
这给了我正确的结果,120。但是如果我们将它更改为parallelStream(),那么它会生成错误的值。为什么?在这种情况下,为什么并行化会产生错误的结果?解决方法是什么?
【问题讨论】:
标签: java java-8 java-stream