我有一个地图,我正试图找出该地图是否包含除列表中提供的值以外的任何键。
像这样:
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。