查找map是否包含非列表中的键的方法



我有一个地图,我正试图找出该地图是否包含除列表中提供的值以外的任何键。

像这样:

ArrayList<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
Map<String, String> map = new HashMap<String, String>();
map.put("A", "A desctiption);
map.put("C", "C desctiption);
map.put("Z", "Z desctiption);

在这种情况下,我希望返回一个TRUE作为"Z"在地图上的不属于列表。

在这种情况下,地图是这样的:

Map<String, String> map = new HashMap<String, String>();
map.put("B", "B desctiption);
map.put("C", "C desctiption);

我希望返回FALSE,因为映射只包含属于列表的项。

我怎样才能做到这一点?

*** UPDATE ***

我已经尝试过了,但似乎没有做正确的工作:

map.entrySet()
.stream()
.anyMatch(entry -> !list.contains(entry.getKey()))

不要使用!在单子上,你为什么不试试……

boolean allKeysInList = map.entrySet()
.stream()
.allMatch(entry -> list.contains(entry.getKey()));

如果映射中的所有键都在列表中,allkeyysinlist将为TRUE,否则为FALSE。

最新更新