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 | 一个带有逻辑的函数,用于使用每个记录更新累加器值 | |
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;
});