猿问

哈希图如何提供​​恒定时间的性能?

这似乎是一个问题,已经被问了一百万遍了。但是我很长时间以来一直怀疑,并且还没有得到正确的答案。

假设我有一个包含1100个元素的hashmap。我假设地图上有1000个水桶。

因此,当我插入一个新元素时,它首先派生密钥的哈希,例如其676,现在它将检查676存储桶在哪里,并将该对象作为EntryObject放入存储桶中。

现在我的问题是如何到达676桶?我假设这些存储区哈希值已编入索引,我的意思是有序。就像我有一本1000页的书,而我想转到676页一样,我无法直接打开该页面,根据书的宽度的假设,可以到达接近676页的页面。再尝试几次,我可以转到第676页。本书是否有100页或1000000页,与1:10000相比并没有多大区别,但是在到达确切的页面之前,我必须进行几次尝试。

我的问题是,它在HashMap中如何发生?另外,如果您中的任何一位给我一些引导,以深入地了解内部工作原理,这将非常有帮助。


神不在的星期二
浏览 114回答 2
2回答

繁花如伊

这是一个数组查找。当您解析someArray [index]时,您不会翻阅页面,而是将一个元素的大小乘以索引后的值添加到第一个条目的地址中,就可以了。
随时随地看视频慕课网APP

相关分类

Java
我要回答