我对HashMap的理解是顺序不可预测,因此搜索时间也是不可预测的。但是在最近的一次采访中我被问到这个问题“HashMap有没有明确的搜索时间?”
答案 0 :(得分:2)
HashMap是一种可能的数据结构,平均查找时间复杂度为O(1)但是在最坏的情况下,查找可能需要与O(n)一样长。
有很多“特殊”情况,保证哈希在O(1)时间内执行查找。
例如:
如果事先知道所有键,则可以生成保证情况#3的“完美”散列函数。这在实践中用于生成符号查找表,其中一组符号(字符串)是预先知道的。
请参阅:
答案 1 :(得分:0)
hashMap
有一个可变的检索时间.. !!
hashMap
通过使用哈希函数找到位置。但哈希函数需要一些时间才能完成。它基本上是一个算法,因此该算法的执行需要一些时间.. !!
接下来的事情是,即使哈希函数完成,它也会为多个条目(在某些情况下)生成相同的位置。因此,在这种情况下,它希望更深入。这也需要更多时间.. !!
hashMap
指向具有共同条目的唯一情况 检索时间是,数据必须始终产生唯一的hashKey
。 也就是说,时间总是等于Hash的执行 算法
但是在数组的情况下,检索时间总是相同的,因为它可以直接访问数组的位置,时间总是为O(1)。