二者均是Object类里的方法。由于Object类是所有类的基类,所以一切类里都可以重写这两个方法。
- 相等的对象hashCode(哈希码)(或散列码) 一 定相等
如果 x.equals(y) 返回 “true”,那么 x 和 y 的 hashCode() 必须相等 ;
2.如果两个对象的hashCode相等,这两个对象也并不一定相等
如果 x.equals(y) 返回 “false”,那么 x 和 y 的 hashCode() 有可能相等,也有可能不等
1、当覆盖了equals方法时,比较对象是否相等将通过覆盖后的equals方法进行比较(判断对象的内容是否相等)。
2、将对象放入到集合中时,首先判断要放入对象的hashCode值与集合中的任意一个元素的hashCode值是否相等,
如果不相等直接将该对象放入集合中。如果hashCode值相等,然后再通过equals方法判断要放入对象与集合中的
任意一个对象是否相等,如果equals判断不相等,直接将该元素放入到集合中,否则不放入。