我有一个 List<String>
在 java
它包含一些字符串。
我还有一个 hashmap
与 String
值,我想检查我的列表中是否有任何元素不在 HashMap 中。这是我写的代码:
List<String> someStrings = fetchData();
if (someStrings.stream().noneMatch(s -> myHashMap.containsValue(s))) {
return false;
}
return true;
但它不能正常工作。你能帮我吗?
最佳答案
鉴于你的情况是
if there's any element in my List that is not in the Hashmap
您可以在遍历元素列表时使用 anyMatch
来检查是否有任何元素不存在于 hashmap 值中。
return someStrings.stream().anyMatch(val -> !myHashMap.containsValue(val))
或者将其视为someStrings
的所有元素都出现在 HashMap 值中
return someStrings.stream().allMatch(myHashMap::containsValue);
类似的检查也可以在值的 Collection
上使用 containsAll
:
return myHashMap.values().containsAll(someStrings);
关于java - 如何检查我的 arraylist 中是否有不在 hashmap 中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54787135/