【发布时间】:2016-07-01 10:49:21
【问题描述】:
我有一个整数流,我想找到总和等于另一个数字的两个数字。所以我想出了以下解决方案:
BiPredicate<Integer, Integer> p = (price1, price2) -> price1.intValue() + price2.intValue() == moneyQty;
flavoursPrices.filter(p);
但是过滤器方法没有收到 BiPredicate。为什么不?有什么替代方法?
【问题讨论】:
-
流一次处理一个元素。过滤器检查每个元素的条件,并决定是否通过它。当您只有一个对象要决定时,您不能使用双参数谓词。
-
因为 Stream
是 Integer 实例的序列,而不是整数对的序列。
标签: java lambda filter functional-programming predicate