1

我已经读了很多遍了,我只是想澄清一下。

HashMap 被称为 Arraylists 数组。

我们可以说数组大小是哈希图的桶大小吗

注意:我只想做一个更正:

1) 桶的数量等于 Array 的大小 2) 桶的大小是 Arraylist 的大小。

很抱歉给您带来不便。请让我知道以上两点是否正确。

4

3 回答 3

4

不。在你的类比中,每个桶都是 one ArrayList,所以桶的大小就是ArrayLists 的大小。一个好的实现会努力使它们都保持大致相同的大小,并且相当小。

于 2012-05-01T11:34:09.670 回答
0

桶的数量是 Array 的长度。每个存储桶都是一个 ArrayList,因此存储桶大小(可能因存储桶而异)就是该 ArrayList 的长度。该大小大于 1 的唯一原因是,如果为添加到 HashMap 的两个对象计算的哈希码发生冲突(注意,这可能hashCode()与/地图中的桶数)。

于 2012-05-01T11:36:48.407 回答
0

实际上它比这更复杂。例如,JavaHashMap实现为链表数组。在那个模型中,根本没有固定的桶大小。

如果您阅读文献,您会发现有许多不同的方法来组织哈希表,它们具有不同的特性。哈希表上的维基百科页面是开始阅读的好地方。

于 2012-05-01T12:05:20.533 回答