我有一个秒表类来测量生成报告所需的时间:public class Stopwatch { public String report; public Instant startTime; public Instant endTime; public Duration duration;}运行报告时,会收集时间和持续时间:private ArrayList<Stopwatch> _reportStats;最后我想知道所有报告的总持续时间,例如:Duration total = Duration.ZERO; // was null;for (Stopwatch s: _reportStats) { total = total.plus(s.duration);}除了我想使用流和减少,但我无法得到正确的语法:Duration total = _reportStats.stream().reduce(... syntax ...);
1 回答
米琪卡哇伊
TA贡献1998条经验 获得超6个赞
您可以将sumreduce
与标识值 (Duration.ZERO
) 一起使用,并将其定义Duration.plus
为累加器:
Duration total = _reportStats.stream() .map(Stopwatch::getDuration) .reduce(Duration.ZERO, Duration::plus);
添加回答
举报
0/150
提交
取消