如果我在两个流中有一个共同的操作序列,如何共享它们以避免代码重复?到目前为止,我发现我可以使用:
Stream<U> commonSequence(Stream<T> upstream) {
return upstream.op1().op2().op3()
}
然后把它当作
commonSequence(upStream()).downStream()
但是事情并不是按照发生的顺序写的。我是否忽略了一些技巧,可以让我写一些东西,比如:
upStream().wrap(commonPart).downStream()
1条答案
按热度按时间mpbci0fu1#
你可以自己做
Collector
,但它的效率可能不会那么高。下面的收集器在某种程度上相当于
filter("foo").limit(10)
.你可以这样使用它:
这将产生输出
当然,您可以对它进行修改,以获取更广泛行为的构造函数参数,或者使用其他数据结构对其进行优化,但我个人更喜欢这样
commonSequence(stream)
.