Java - 哪个hashmap get()方法会更快,为什么?

时间:2014-12-19 20:53:51

标签: java

我有两个哈希图:

  1. hashmap1与1000(键,值)对,如(1,一)(2,2)(3,三)(4,四)..(1000,千)
  2. hashmap2与100,000(键,值)对,如(1,one)(2,2)(3,3)..(100000,十万)
  3. 以下两项操作中的哪一项会更快,即。 hashmap1.get(100)或hashmap2.get(100)以及为什么?

2 个答案:

答案 0 :(得分:3)

他们都会在(大约)同时进行。

如果您查看HashMap API

  

此实现为基本操作(get和put)提供常量时间性能,假设散列函数在桶之间正确地分散元素。

答案 1 :(得分:0)

除了@azurefrog的答案之外,我还想提出这一点。

这取决于快速的定义。渐渐地说,这两个操作都将采用O(1),并且与n的大小无关,即1或100,000或1MM。

但是,当我们在一般意义上考虑HashMap时,有一些有趣的含义。它也可能受到以下两个因素的影响。

  1. 基础哈希算法必须是无冲突的。
  2. 对象相等也在O(1)中完成。
  3. 但对于手头的情况,两者在渐近说话时应该在理论上同时进行。