Java算法将列表的值映射到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个键来说这不是什么大问题,但是如果我想把它扩展到一百万个键,有没有什么有效的算法可以用来实现上面的功能
谢谢
# 1 楼答案
使用
Map.replace()
:这将仅使用
list
中的匹配元素更新现有密钥作为旁注,一个
Map<K, Boolean>
通常可以被一个较轻的Set<K>
代替# 2 楼答案
您不需要显式地迭代
HashMap
hashMap.containsKey(key)
检查键是否以优化方式存在于映射中。您需要研究一下HashMap是如何工作的这会奏效的