虽然在reduce函数中有许多组合器用法的定义,但仍然很难理解。
我有2个问题:
1:什么时候在reduce方法中使用合并器?
2:下面的代码段具有reduce函数的两种实现,一种具有 合并器和另一个没有合并器的并行执行 流。两者给出相同的结果
Integer arrSum2 = Stream.of(1,2,3,4,5).parallel().reduce(1,(x,y)->x+y);
System.out.println(arrSum2);
Integer arrSum3 = Stream.of(1,2,3,4,5).parallel().reduce(1, (x,y)->x+y, (p,q)->{
System.out.println("combiner called");
return p+q;
});
System.out.println(arrSum3);
我的问题是,如果第一个实现(不带组合器)与第二个实现(带组合器)工作相同,那么我必须在组合器中使用reduce方法的场景是什么?
有人可以举一些简单的例子来帮助我吗?