簡體   English   中英

在鍵值對列表中檢查具有相同鍵的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM