如何将BiPredicate与anyMatch()结合使用

我有一组货币,Set<String>和RequiredCurrency为Set<String>。我必须检查所需的货币是否以货币设置存在。我已经BiPredicate为以下内容写过文章,并尝试在中使用相同的内容anyMatch()。但这对我不起作用。我怎样才能做到这一点。


Set<String> currencyValues = currencies.getCurrencies().values()

                    .stream()

                    .map(currencyEntity -> {

                       return currencyEntity.getNameOfSymbol();

                    }).collect(Collectors.toSet());


Set<String> requestCurrencyCodes = globalPricingRequests.stream().map(globalPricingRequest -> {

    return globalPricingRequest.getCurrencyISOCode();

}).collect(Collectors.toSet());


BiPredicate<Set<String>, String> checkIfCurrencyPresent = Set::contains;


boolean isCurrencyCodeValid = requestCurrencyCodes.stream().anyMatch(checkIfCurrencyPresent.test(currencyValues));

我无法在中传递requestCurrencyCode checkIfCurrencyPresent.test(currencyValues)。


动漫人物
浏览 182回答 3
3回答

喵喵时光机

您不需要BiPredicate。宁可简单地Predicate做到这一点。Predicate<String> checkIfCurrencyPresent = currencyValues::contains;boolean isCurrencyCodeValid = requestCurrencyCodes.stream()&nbsp; &nbsp; &nbsp; &nbsp; .anyMatch(checkIfCurrencyPresent);这是一个更简洁的版本。boolean isCurrencyCodeValid = requestCurrencyCodes.stream()&nbsp; &nbsp; &nbsp; &nbsp; .anyMatch(currencyValues::contains);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java