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;
});
RATE THIS PAGE
Back to top ↑