Accumulate

将管道中的许多记录缩减为单个记录。

public <I extends java.io.Serializable> GearsBuilder<I> accumulate(
    gears.operations.AccumulateOperation<T,I> accumulator)

public <I extends java.io.Serializable> GearsBuilder<I> accumulate(
    I initialValue, 
    gears.operations.AccumulateOperation<T,I> accumulator)

Accumulate 是一个多对一函数,它迭代管道中的记录并将它们缩减为单个记录。

您可以提供一个参数来设置初始累加器值。 否则,初始累加器对象为 null。

参数

类型参数

名称 描述
I 返回的构建器的模板类型

函数参数

名称 类型 描述
accumulator AccumulateOperation<T,​I> 一个具有使用每个记录更新累加器值的逻辑的函数
initialValue 模板类型 I 累积对象的初始值

返回值

返回具有新模板类型的 GearsBuilder 对象。

示例

以下两个示例都计算管道中的记录数。

没有 initialValue 参数

GearsBuilder.CreateGearsBuilder(reader).accumulate((a, r)->{
    Integer ret = null;
    if (a == null) {
	    ret = 1;
    } else {
	    ret = (Integer)a;
    }
    return ret + 1;
});

initialValue 参数设置为 0

GearsBuilder.CreateGearsBuilder(reader).accumulate(0, (a, r)->{
   	return a + 1;
});
评价此页
返回顶部 ↑