在java 8流上存储/重用中间结果

前端之家收集整理的这篇文章主要介绍了在java 8流上存储/重用中间结果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个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)

解决方法

那么你总是可以将两个东西包装成一对,数组,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相关文章