我有一个 A 列表,要执行过滤,我需要将 A 映射到 B。但是一旦完成过滤逻辑,我仍然需要 A 进行进一步操作,所以我的问题是是否有可能实现这一目标?我能想到的一种方法是将 A 和 B 都存储到第三种类型中,所以我在处理流时都可以使用,但不确定这是否优雅并且想知道这里是否有更好的方法。或者我是否正在尝试适合使用流将方钉插入圆孔中。
List<A> a;
List<B> b = a.stream().map(i -> load(i)).filter(need A here in addition to b)
最佳答案
好吧,你总是可以传递包装成Pair
、array
、List
的两个东西,例如:
a.stream().map(i -> List.of(load(i), i)) // List#of is java-9, replace with Pair or array
.filter(x -> x[0]...)
.filter(y -> /* y is List here */)
关于java - 在 Java 8 流上存储/重用中间结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49182290/