当您在哈希中插入项目时,密钥是否会被编码到物理内存空间,因此查找时间非常快?即不断查找时间。
答案 0 :(得分:3)
通过使用Entry
引用数组,它具有接近恒定的查找时间(假设您有大量的碰撞)。
Java不会直接操作地址位置,因为GC可以随时更改这些位置。
答案 1 :(得分:0)
哈希表的想法是将项目存储在一个数组中,索引的计算速度非常快(在java的Hashtable
中调用密钥的hashcode()
方法,并且它是用于获取索引(以表的长度为模))。
当表格不是太满时,此表中此索引处的元素(链接)很少。寻找元素只是将它们的键与传递的键进行比较。
所以这是一张几乎空桌子的恒定时间,但是当桌子变满时会持续一段时间,因为碰撞意味着你有更多的比较要做。