微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/java/129736.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐