合并两个哈希映射的成本

时间:2014-03-11 03:06:04

标签: java performance asymptotic-complexity

我们说我有两个HashMaps如下

HashMap<Character, Integer> map1 = new HashMap<Character, Integer>();
HashMap<Character, Integer> map2 = new HashMap<Character, Integer>();

现在我想将这两个合并在一起,并将它们作为map3

放入另一个HashMap中

在渐近复杂度方面做到这一点的最佳方法是什么。

2 个答案:

答案 0 :(得分:1)

就渐近复杂性而言,它意味着创建一个新地图并将每个地图的所有元素添加到其中。所以T(插入)*(m + n)(如果这是作业,我不会透露答案!)。 java哈希映射不比文本书哈希映射更有效,因此没有捷径。最后,如果您可以随意修改两个地图中的任何一个,我建议将较小的地图合并到较大的地图中。这将节省迭代大型地图所花费的时间,并可能节省内存分配所花费的时间。

答案 1 :(得分:0)

做你想做的最简单的方法是:

HashMap<Character, Integer> map3 = new HashMap<Character, Integer>();
map3.putAll(map1);
map3.putAll(map2);

希望这有帮助。