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));
您可能还想创建自己的类来封装对. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
