我有一个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 */)