我已多次阅读,我只想澄清一下。
HashMap被称为Arraylists数组。
我们可以说数组大小是散列映射的桶大小
注意:我只想做一次修正:
1)桶数相当于数组大小 2)铲斗尺寸是Arraylist的大小。
抱歉给您带来不便。如果以上两点是正确的,请告诉我。
答案 0 :(得分:4)
没有。在您的类比中,每个桶将是一个ArrayList
,因此桶大小将是ArrayList
的大小。一个好的实现将努力使所有这些大小保持相同,并且相当小。
答案 1 :(得分:0)
存储桶的数量是数组的长度。每个存储桶都是一个ArrayList,因此存储桶大小(可能因存储桶而异)将是该ArrayList的长度。这个大小多于一个的唯一原因是,如果为添加到HashMap的两个对象计算的哈希码发生碰撞(nb,这可能与hashCode()
返回的值不同,但是从它生成的值与地图中容量/桶数量的关系。)
答案 2 :(得分:0)
实际上它比这更复杂。例如,Java HashMap
实现为链接列表数组。在该模型中,根本没有固定的桶大小。
如果您阅读了文献,您会发现有许多不同的方法来组织具有不同特征的哈希表。 Wikipedia page on hash tables是开始阅读的好地方。