在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 */)

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...