我在具有相同lambda表达式的相同数组上使用了reduce with stream和parallelStream,我期望相同的结果,但输出是不同的.但是,结果不同,我不知道为什么.
代码:
System.out.println("Reduce me...");
Integer[] arrx = {1,2,3,4};
// Reducing the Array
Arrays
.stream(arrx)
.reduce((s1, s2) -> (int)Math.pow(s1,2) + (int)Math.pow(s2,2))
.ifPresent(System.out::println);
Arrays.asList(arrx)
.parallelStream()
.reduce((s1, s2) -> (int)Math.pow(s1,2) + (int)Math.pow(s2,2))
.ifPresent(System.out::println);
Run Code Online (Sandbox Code Playgroud)
输出:
1172
650
Run Code Online (Sandbox Code Playgroud)