Discuss / Java / 最后有句话容易有歧义。“在HashMap内部,确实可能存在不同的key,映射到相同的hashCode(),即相同的数组索引上”

最后有句话容易有歧义。“在HashMap内部,确实可能存在不同的key,映射到相同的hashCode(),即相同的数组索引上”

Topic source

这里的“映射到相同的hashCode()”,应该是指key相应字段经过属于实例的hashCode()后,再经过HashMap的hashCode()得到的索引。

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

那是HashMap内部的优化。

之所以要再做一次hash,是因为很多类的hashCode实现比较差,会映射到一个很小的范围,HashMap内部再hash目的是让hash值能比较均匀地分布到整个int范围


  • 1

Reply