Java中的HashMap使用hashCode()和equals()方法来确定键值对的索引,当根据键获取值的时候也会用到这两个方法。如果没有正确的实现这两个方法,两个不同的键可能会有相同的hash值,
因此,可能会被集合认为是相等的。而且,这两个方法也用来发现重复元素。所以这两个方法的实现对HashMap的精确性和正确性是至关重要的。
简介:
hashCode与equals这一对看似作用相同但细品却有着很大的区别,都是值比较而你我却有着不同的衡量标准。不如我们一起约定一个规则,来更好的为程序服务吧
有这么两个结论:
1、equals相等的两个对象他们的hashCode肯定相等,因此equals是绝对可靠的。
2、hashCode相等的两个对象他们的equals不一定相等,因此hashCode不是绝对可靠的。
什么是HashCode(哈希码)
hashCode()的作用就是获取哈希码,它是一个int整数。这个哈希码的作用是确定该对象在散列表中的索引位置。hashCode定义在java.Object中,意味着每个类都有hashCode函数。
1 2 3 4 5 6 7 |