相关疑难解决方法(0)

Java 8 Stream - Reduce函数的组合器没有被执行

我使用一个简单的reduce方法,有三个参数即.身份,累加器和组合器.这是我的代码......

Integer ageSumComb = persons
            .stream()
            .reduce(0,
                (sum, p) -> {
                    System.out.println("Accumulator: Sum= "+ sum + " Person= " + p);
                    return sum += p.age;
                },
                (sum1, sum2) -> {
                    System.out.format("Combiner: Sum1= " + sum1 + " Sum2= "+ sum2);
                    return sum1 + sum2;
Run Code Online (Sandbox Code Playgroud)

但正在发生的事情是Combiner没有被执行.我没有得到这背后的原因.这是我的输出..

Accumulator: Sum= 0 Person= Max
Accumulator: Sum= 18 Person= Peter
Accumulator: Sum= 41 Person= Pamela
Accumulator: Sum= 64 Person= David
Accumulator: Sum= 76 Person= Pam
Run Code Online (Sandbox Code Playgroud)

但是,没有编译错误,没有异常,我的输出完全正确,与我的预期相同.但是没有得到为什么组合器没有执行.

java reduce java-8 combiners java-stream

1
推荐指数
1
解决办法
316
查看次数

标签 统计

combiners ×1

java ×1

java-8 ×1

java-stream ×1

reduce ×1