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