我已经读了很多遍了,我只是想澄清一下。
HashMap 被称为 Arraylists 数组。
我们可以说数组大小是哈希图的桶大小吗
注意:我只想做一个更正:
1) 桶的数量等于 Array 的大小 2) 桶的大小是 Arraylist 的大小。
很抱歉给您带来不便。请让我知道以上两点是否正确。
我已经读了很多遍了,我只是想澄清一下。
HashMap 被称为 Arraylists 数组。
我们可以说数组大小是哈希图的桶大小吗
注意:我只想做一个更正:
1) 桶的数量等于 Array 的大小 2) 桶的大小是 Arraylist 的大小。
很抱歉给您带来不便。请让我知道以上两点是否正确。
不。在你的类比中,每个桶都是 one ArrayList
,所以桶的大小就是ArrayList
s 的大小。一个好的实现会努力使它们都保持大致相同的大小,并且相当小。
桶的数量是 Array 的长度。每个存储桶都是一个 ArrayList,因此存储桶大小(可能因存储桶而异)就是该 ArrayList 的长度。该大小大于 1 的唯一原因是,如果为添加到 HashMap 的两个对象计算的哈希码发生冲突(注意,这可能hashCode()
与/地图中的桶数)。
实际上它比这更复杂。例如,JavaHashMap
实现为链表数组。在那个模型中,根本没有固定的桶大小。
如果您阅读文献,您会发现有许多不同的方法来组织哈希表,它们具有不同的特性。哈希表上的维基百科页面是开始阅读的好地方。