假设我有一个包含一些键值对的列表和一个包含许多值的数组。
public boolean hasSameKey(List<Map.Entry<Key, Value>> list, Value ... values) {
return ?;
}
我想检查的是,如果所有值都具有相同的 keyvalues
条目。list
编辑 为了澄清,列表中的每个键都可能具有具有多个值的键
根据我从您的问题中得到的信息,我将首先稍微更改您的方法签名以Map<Key, List<Value>>
作为第一个参数。
然后你可以像这样继续: -
public boolean hasSameKey(Map<Key, List<Value>> map, Value... values) {
for (Key key: map.keySet()) {
if (map.get(key).containsAll(Arrays.asList(values))) {
return true;
}
}
return false;
}
map.get(key)
- 获取List<Value>
对应键的 。List#containsAll
方法检查特定元素中的所有元素是否都collection
在该列表中。如果您使用的是 Rohit Jain 建议的多地图:Map<Key, List<Value>>
您可以这样做:
public boolean hasSameKey(Map<Key, List<Value>> multimap, Value ... values) {
for(Key key : multimap.keySet()) {
if (map.get(key).containsAll(Arrays.asList(values))) {
return true;
}
}
return false;
}
这样你就可以检查你所有的Value
s 是否存在于 aList
中Map
。