从HashMap的原理这篇笔记我们知道元素在数组存放位置的计算公式是hashCode%length,假如有两个元素经过这个公式计算出来的结果是一样的话,则它们都会存放在这个位置的链表里。
关于equals和hashcode的关系是这样的。
HashCode相等的,equals不一定相等。
equals相等的,HashCode一定相等。
综上所述,HashCode相等,只是证明他们存放在同一个地方,只有equals相等了,才能证明他们是同一个地方的同一个类。
本文探讨了HashMap中元素存储位置的计算方式及其与hashCode及equals方法的关系。详细解释了即使两个对象的hashCode相同,也不意味着它们通过equals比较也相等;而equals相等的对象hashCode必定相等。
从HashMap的原理这篇笔记我们知道元素在数组存放位置的计算公式是hashCode%length,假如有两个元素经过这个公式计算出来的结果是一样的话,则它们都会存放在这个位置的链表里。
关于equals和hashcode的关系是这样的。
HashCode相等的,equals不一定相等。
equals相等的,HashCode一定相等。
综上所述,HashCode相等,只是证明他们存放在同一个地方,只有equals相等了,才能证明他们是同一个地方的同一个类。
243
4326

被折叠的 条评论
为什么被折叠?