[英]Check for values with same key in a list of key-value pairs
假設我有一個包含一些鍵值對的列表,以及一個包含多個值的數組。
public boolean hasSameKey(List<Map.Entry<Key, Value>> list, Value ... values) {
return ?;
}
我要檢查的是,值中的所有values
是否在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;
}
這樣,您可以檢查Map
中的List
中是否存在所有Value
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.