加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java 8 – 使用BiPredicate进行过滤

发布时间:2020-05-25 01:16:16 所属栏目:Java 来源:互联网
导读:我有一个整数流,我想找到两个数字,其总和等于另一个数字.所以我想出了以下解决方案: BiPredicateInteger, Integer p = (price1, price2) - price1.intValue() + price2.intValue() == moneyQty;flavoursPrices.filter(p); 但是过滤方法没有收到BiPredicate.

我有一个整数流,我想找到两个数字,其总和等于另一个数字.所以我想出了以下解决方案:

BiPredicate<Integer,Integer> p = (price1,price2) -> price1.intValue() + price2.intValue() == moneyQty;
flavoursPrices.filter(p);

但是过滤方法没有收到BiPredicate.为什么不?有什么替代方案?

解决方法

您可以通过 StreamEx library在何处实施解决方案:
StreamEx.ofPairs(prices,(p1,p2) -> p1 + p2 == 5 ? StreamEx.of(p1,p2) : StreamEx.empty())
            .flatMap(Function.identity())
            .forEach(price -> System.out.println(price));

您可能还想创建自己的类来封装对.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读