我有一个整数流,我想找到两个总和等于另一个数字的数字。所以我想出了以下解决方案:
BiPredicate<Integer, Integer> p = (price1, price2) -> price1.intValue() + price2.intValue() == moneyQty;
flavoursPrices.filter(p);
但是filter方法不会收到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));
您可能还需要创建自己的类来封装对。