簡體   English   中英

List的Java映射值到Hashmap中

[英]Java map values of List into a Hashmap

我有一個HashMap:

K1, false
K2, false
K3, false
...
K1000, false

最初,所有鍵的值均為false。

我有一個ArrayList:

K3, K10, K33,..., K417, K834, K998

我需要獲取列表的值,並在Hashmap中將相應鍵僅將這些值標記為“ true”。 現在我知道我們可以做到這一點:

Iterate HashMap:
    Iterate List:
        if HashMap.contains(List[i])
            HashMap.put(List[i], true)

但是我們在這種邏輯中使用了2次迭代,也許對於1000個鍵來說這不是什么大問題,但是如果我想將其擴展到一百萬個鍵,那么有什么有效的算法可以用來實現上述目標?

謝謝。

您不需要顯式地迭代HashMap hashMap.containsKey(key)檢查hashMap.containsKey(key)是否以優化方式存在於地圖中。 您需要研究一下HashMap的工作方式。

Iterate List:
    if HashMap.containsKey(List[i])
        HashMap.put(List[i], true)

這將起作用。

使用Map.replace()

for (E element : list) {
    map.replace(element, true);
}

這只會更新list具有匹配元素的現有鍵。

附帶說明一下, Map<K, Boolean>通常可以用較輕的Set<K>代替。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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