Java流为什么reduce需要函数接口的两个参数?

Java流为什么reduce需要函数接口的两个参数?,java,android,java-stream,Java,Android,Java Stream,换句话说,为什么reduce需要BinaryOperator或双功能接口?为什么它不使用一元运算符或函数接口呢 将两个参数作为功能接口的输入有什么意义?(我知道这是为了累加,但为什么一个参数不够?如何计算一个值,该值依赖于所有流元素,并使用一元运算符 您可以在流的第一个元素上应用UnaryOperator 然后可以在流的第二个元素上应用UnaryOperator 但是你不能把这两个结果结合起来 可以在流的第一个和第二个元素上应用二进制运算符 然后,您可以将其应用于中间结果(前两个元素)和流的第三

换句话说,为什么reduce需要BinaryOperator或双功能接口?为什么它不使用一元运算符或函数接口呢


将两个参数作为功能接口的输入有什么意义?(我知道这是为了累加,但为什么一个参数不够?

如何计算一个值,该值依赖于所有
元素,并使用
一元运算符

您可以在
流的第一个元素上应用
UnaryOperator

然后可以在
流的第二个元素上应用
UnaryOperator

但是你不能把这两个结果结合起来

可以在
流的第一个和第二个元素上应用
二进制运算符


然后,您可以将其应用于中间结果(前两个元素)和
流的第三个元素,以获得依赖于前三个元素的中间结果,依此类推。。。直到得到一个依赖于所有元素的结果。

二进制运算符是一个执行还原操作的函数。它接受两个元素作为输入,只返回一个。基本上,这是reduce操作的根本部分。我现在明白了,谢谢。在我看来,一个输入就足够了,会有一个临时变量来保存中间结果,而不是两个参数:)