2017-02-09 39 views
0

有人可以查看并让我知道我的理解是否正确。理解哈希映射的内部实现

在放置该值时,根据散列码生成密钥的哈希码,我们找到该桶并存储该密钥值对。 现在在获取我们传递密钥的值时,会生成其哈希码,然后使用此哈希码我们找到存储键值的桶。并且该值被返回。

这是正确的理解,如果2个比较密钥具有相同的哈希码,那么当获取该密钥的值(获取哈希码时生成的哈希码)哈希码只是用来到达桶。然后使用equals方法来检索值?

+2

是的,这听起来是正确的。 –

+1

另请参见:[Java HashMap如何处理具有相同哈希代码的不同对象?](http://stackoverflow.com/questions/6493605/how-does-a-java-hashmap-handle-different-objects-with -the-相同散列码/ 6493946#6493946) – Jesper

回答

0

您了解正确。由于计算散列码并发现存储桶的速度很快,并且使用equals与散列映射中的每个对象进行比较的效率都很低,所以使用这些存储桶来提高性能。使用大型设备时,性能优势非常明显。