gpt4 book ai didi

java - 如何将 BiPredicate 与 anyMatch() 一起使用

转载 作者:搜寻专家 更新时间:2023-11-01 02:57:03 25 4
gpt4 key购买 nike

我有一组货币为 Set<String>和 RequiredCurrency 为 Set<String> .我必须检查 currency set 中是否存在任何所需的货币。我写了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));

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

最佳答案

您不需要 BiPredicate。一个简单的 Predicate 就可以做到这一点。

Predicate<String> checkIfCurrencyPresent = currencyValues::contains;

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

这是一个更精简的版本。

boolean isCurrencyCodeValid = requestCurrencyCodes.stream()
.anyMatch(currencyValues::contains);

关于java - 如何将 BiPredicate 与 anyMatch() 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54049258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com