有谁知道这个问题的答案?
答案 0 :(得分:14)
是。要搜索添加了1亿个项目的哈希映射,请执行以下操作:
1)计算您要查找的对象的哈希值
2)找到那个桶
3)在该桶中搜索该项目。
(1)独立于哈希映射的大小或其中的项目数 (2)是O(1),假设标准hashmap实现为链表列表 (3)花费与桶中的项目数相关的时间量,该时间应该是大约(添加到哈希的项目数)/(桶数)。这部分将从O(1)开始,但随着项目数量开始大大超过桶数,将会非常缓慢地增加。
对于几乎任何目的,只要您从足够多的存储桶开始,即使使用非常大的数据集,也可以将哈希映射视为插入和检索的O(1)。
答案 1 :(得分:7)
是的,仍然是恒定时间(摊销)。