我有一个整数流,我想找到两个总和等于另一个数字的数字。所以我想出了以下解决方案:

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));

您可能还需要创建自己的类来封装对。

10-08 03:30