我在List<String>中有一个java,它包含一些字符串。

我也有一个带有hashmap值的String,我想检查列表中是否有任何不在Hashmap中的元素。这是我写的代码:

List<String> someStrings = fetchData();
if (someStrings.stream().noneMatch(s -> myHashMap.containsValue(s))) {
    return false;
}
return true;

但是它不能正常工作。你能帮我吗?

最佳答案

鉴于您的情况是



您可以在遍历元素列表时使用anyMatch来检查哈希映射值中是否不存在任何元素。

return someStrings.stream().anyMatch(val -> !myHashMap.containsValue(val))

或者看一下好像哈希表值中存在someStrings的所有元素
return someStrings.stream().allMatch(myHashMap::containsValue);

但是,类似的检查也可以在值的containsAll上使用Collection:
return myHashMap.values().containsAll(someStrings);

10-04 10:24