java中函数的参数的作用_Java 8函数编程中“ reduce”函数的第三个参数的目的

小编典典

您在说这个功能吗?

reduce U reduce(U identity,

BiFunction accumulator,

BinaryOperator combiner)

使用提供的标识,累积和组合功能,对此流的元素进行简化。这等效于:

U result = identity;

for (T element : this stream)

result = accumulator.apply(result, element)

return result;

```

但不限于顺序执行。身份值必须是组合器功能的身份。这意味着对于所有u,combiner(identity,u)等于u。此外,组合器功能必须与累加器功能兼容;对于所有u和t,必须满足以下条件:

>

combiner.apply(u, accumulator.apply(identity, t)) ==

accumulator.apply(u, t)

```

这是终端操作。

API注意:通过使用map和reduce操作的显式组合,可以更简单地表示使用这种形式的许多归约。累加器功能充当映射器和累加器的融合,有时比单独的映射和归约方法更有效,例如,当知道先前的降低值可以避免进行某些计算时。类型参数:U-结果的类型参数:identity-组合器函数累加器的标识值-关联,无干扰,无状态的功能,用于将附加元素合并到结果组合器中-关联,无干扰,无状态用于合并两个值的函数,这些值必须与累加器函数兼容返回:约简的结果另请参见:reduce(BinaryOperator),reduce(Object,BinaryOperator)

我以为它的目的是允许并行计算,所以我的猜测是只有在并行执行归约时才使用它。如果按顺序执行,则无需使用combiner。我不确定这一点-我只是基于文档注释“ […]不受顺序执行约束”以及注释中许多其他有关“并行执行”的说法。

2020-10-21

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值