ReactiveX有一个名为Scan的Very Neat运算符,它类似于reduce,只是它发出每个中间累加器。
我将如何使用Java Streams做到这一点?Stream#reduce不是我想要的,因为它返回T:
T reduce(T identity, BinaryOperator<T> accumulator)
我想要返回Stream<T>的是流的每个项目,T它们是每次调用时都返回的accumulator:
Stream.of(1, 2, 3)
.myScan(0, (accumulator, i) -> accumulator + i)
.collect(Collectors.toList()); // [1, 3, 6]
我可以做一些reducing脚的事情,例如减少List,然后再转换回Stream,但这很丑陋。
SMILET
红颜莎娜
倚天杖
相关分类