HashMap拥有约1亿个键,仍然是恒定的时间?

时间:2009-12-23 15:52:57

标签: hashmap

有谁知道这个问题的答案?

2 个答案:

答案 0 :(得分:14)

是。要搜索添加了1亿个项目的哈希映射,请执行以下操作:

1)计算您要查找的对象的哈希值 2)找到那个桶
3)在该桶中搜索该项目。

(1)独立于哈希映射的大小或其中的项目数 (2)是O(1),假设标准hashmap实现为链表列表 (3)花费与桶中的项目数相关的时间量,该时间应该是大约(添加到哈希的项目数)/(桶数)。这部分将从O(1)开始,但随着项目数量开始大大超过桶数,将会非常缓慢地增加。

对于几乎任何目的,只要您从足够多的存储桶开始,即使使用非常大的数据集,也可以将哈希映射视为插入和检索的O(1)。

答案 1 :(得分:7)

是的,仍然是恒定时间(摊销)。