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