Java HashMap实现概念
我已经读了很多遍了,我只是想澄清一下 HashMap被称为ArrayList数组 我们可以说数组大小是hashmap的bucket大小吗 注意:我只想做一个更正: 1) 桶的数量等于数组大小 2) Bucket size是Arraylist的大小Java HashMap实现概念,java,conceptual,Java,Conceptual,我已经读了很多遍了,我只是想澄清一下 HashMap被称为ArrayList数组 我们可以说数组大小是hashmap的bucket大小吗 注意:我只想做一个更正: 1) 桶的数量等于数组大小 2) Bucket size是Arraylist的大小 很抱歉给您带来不便。请告诉我以上两点是否正确。否。在您的类比中,每个存储桶将是一个ArrayList,因此存储桶大小将是ArrayList的大小。一个好的实现将努力使它们保持大致相同的大小,并且相当小。否。在您的类比中,每个bucket将是一个Arra
很抱歉给您带来不便。请告诉我以上两点是否正确。否。在您的类比中,每个存储桶将是一个
ArrayList
,因此存储桶大小将是ArrayList
的大小。一个好的实现将努力使它们保持大致相同的大小,并且相当小。否。在您的类比中,每个bucket将是一个ArrayList
,因此bucket大小将是ArrayList
的大小。一个好的实现将努力使它们保持大致相同的大小,并且相当小。存储桶的数量是数组的长度。每个bucket都是一个ArrayList,因此bucket大小(可能因bucket而异)就是该ArrayList的长度。该大小大于1的唯一原因是,如果为添加到HashMap的两个对象计算的哈希代码发生冲突(注意,这可能与由hashCode()
返回的值不同,但与映射中的桶容量/桶数相关,从中产生)。桶数是数组的长度。每个bucket都是一个ArrayList,因此bucket大小(可能因bucket而异)就是该ArrayList的长度。该大小大于1的唯一原因是,如果为添加到HashMap的两个对象计算的哈希代码发生冲突(注意,这可能与hashCode()返回的值不同,但与映射中存储桶的容量/数量相关,而由它生成)。实际上,它比这更复杂。例如,JavaHashMap
被实现为一个链表数组。在这个模型中,根本没有固定的桶大小
如果阅读相关文献,您会发现有许多不同的方法可以组织一个具有不同特征的哈希表。这是一个开始阅读的好地方。事实上,它比这更复杂。例如,Java
HashMap
被实现为一个链表数组。在这个模型中,根本没有固定的桶大小
如果阅读相关文献,您会发现有许多不同的方法可以组织一个具有不同特征的哈希表。这是一个开始阅读的好地方