Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HashMap实现概念_Java_Conceptual - Fatal编程技术网

Java HashMap实现概念

Java HashMap实现概念,java,conceptual,Java,Conceptual,我已经读了很多遍了,我只是想澄清一下 HashMap被称为ArrayList数组 我们可以说数组大小是hashmap的bucket大小吗 注意:我只想做一个更正: 1) 桶的数量等于数组大小 2) Bucket size是Arraylist的大小 很抱歉给您带来不便。请告诉我以上两点是否正确。否。在您的类比中,每个存储桶将是一个ArrayList,因此存储桶大小将是ArrayList的大小。一个好的实现将努力使它们保持大致相同的大小,并且相当小。否。在您的类比中,每个bucket将是一个Arra

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

HashMap被称为ArrayList数组

我们可以说数组大小是hashmap的bucket大小吗

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

1) 桶的数量等于数组大小 2) Bucket size是Arraylist的大小


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

否。在您的类比中,每个存储桶将是一个
ArrayList
,因此存储桶大小将是
ArrayList
的大小。一个好的实现将努力使它们保持大致相同的大小,并且相当小。

否。在您的类比中,每个bucket将是一个
ArrayList
,因此bucket大小将是
ArrayList
的大小。一个好的实现将努力使它们保持大致相同的大小,并且相当小。

存储桶的数量是数组的长度。每个bucket都是一个ArrayList,因此bucket大小(可能因bucket而异)就是该ArrayList的长度。该大小大于1的唯一原因是,如果为添加到HashMap的两个对象计算的哈希代码发生冲突(注意,这可能与由
hashCode()
返回的值不同,但与映射中的桶容量/桶数相关,从中产生)。

桶数是数组的长度。每个bucket都是一个ArrayList,因此bucket大小(可能因bucket而异)就是该ArrayList的长度。该大小大于1的唯一原因是,如果为添加到HashMap的两个对象计算的哈希代码发生冲突(注意,这可能与hashCode()返回的值不同,但与映射中存储桶的容量/数量相关,而由它生成)。

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


如果阅读相关文献,您会发现有许多不同的方法可以组织一个具有不同特征的哈希表。这是一个开始阅读的好地方。

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

如果阅读相关文献,您会发现有许多不同的方法可以组织一个具有不同特征的哈希表。这是一个开始阅读的好地方