我有一组货币,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)。
3 回答
喵喵时光机
TA贡献1846条经验 获得超7个赞
您不需要BiPredicate。宁可简单地Predicate做到这一点。
Predicate<String> checkIfCurrencyPresent = currencyValues::contains;
boolean isCurrencyCodeValid = requestCurrencyCodes.stream()
.anyMatch(checkIfCurrencyPresent);
这是一个更简洁的版本。
boolean isCurrencyCodeValid = requestCurrencyCodes.stream()
.anyMatch(currencyValues::contains);
添加回答
举报
0/150
提交
取消