通过键减去两个HashMaps中的值的有效方法

And*_*daP 2 java hashmap

我想知道如何在键匹配时有效地减去两个映射的值.目前我有2 HashMap<String,Integer>并且这样做:

for (String key: map1.keySet()){
   if (map2.keySet().contains(key)){
       //subtract
   }
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?

Dan*_*olo 5

从理论上讲,除非你能以某种方式比O(n)方法更快地找到两者之间的匹配关键字,否则它的速度和它可以做的一样快HashMap.

  • 迭代第一张地图中的键keySet()- O(n)
    • 看看钥匙是否在其他地图中 - O(1)
    • 做你的手术 - O(1)