This question already has answers here:

Why hashmap lookup is O(1) i.e. constant time?
(3个答案)
这看起来像个问题,以前问过无数次。
但我有一些疑问很长一段时间,并不能得到一个正确的答案。
假设我有一个包含1100个元素的hashmap。我想地图上有1000个桶。
所以当我插入一个新元素时,它首先导出键的散列,比如676,现在它将检查676 bucket在哪里,并将该对象作为EntryObject放在bucket中。
现在我的问题是怎么到676桶?
我认为这些bucket散列是有索引的,我是说有序的。
就像我有一本1000页的书,我想去676页,我不能直接打开这一页,我可以达到一个接近676页的页,基于对书的宽度的限制,再尝试几次,我可以去676页。
不管这本书有100页,还是100万页,和1:1万没有多大区别,但在达到确切的页数之前,我必须进行一些试验。
我的问题是,在hashmap中是如何发生的?
如果你们中的任何一个给我一些了解内部工作的线索,深入的话,会很有帮助的。
感谢

最佳答案

这是一个数组查找解析somerarray[index]时,不需要翻页,只需将一个元素的大小乘以索引添加到第一个条目的地址,就可以了。

10-06 13:51