合并器在Java流的减少方法中的用途

时间:2019-07-17 09:32:57

标签: java-8 java-stream

虽然在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方法的场景是什么?

有人可以举一些简单的例子来帮助我吗?

0 个答案:

没有答案