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

Java 8 – 使用BiPredicate进行过滤

发布时间:2020-12-15 02:50:08 所属栏目: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));

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

(编辑:李大同)

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

    推荐文章
      热点阅读