reduce(U identity, BiFunction<U,? super T,U> accumulator, BinaryOperator<U> combiner)
Parameters:
identity - the identity value for the combiner function
accumulator - an associative, non-interfering, stateless function for incorporating an additional element into a result
combiner - an associative, non-interfering, stateless function for combining two values, which must be compatible with the accumulator function
identity 初始值,在parallelism下每个局部都会加上identity
accumulator 局部聚合
第一个参数, 就是identity,所以类型为U
第二个参数,就是Stream中的元素,可以自己设定,又因为有下界通配符,所以可以添加基类
第三个参数,就是返回值U,和输出保持一致
combiner 全局聚合
在parallelism中将局部的结果进行相加,只支持一个泛型,因为局部的结果必须是相同的
参考:
https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#reduce-U-java.util.function.BiFunction-java.util.function.BinaryOperator-