作用:改变 “比较两个对象是否相同”的规则
这两个方法都继承自Object
默认情况下,equals比较两个对象的内存地址,对象的hashcode值根据内存地址生成;
重写后,equals方法比较属性值;hashcode值根据属性值生成。
所以
重写equals方法后,可以通过equals方法比较两个对象的内容是否相同;
重写hashcode方法后,调用hashcode方法的其它类比如hashSet,可以通过比较两个对象的hashcode值来快速判断集合中是否存在相同元素:
①hash值不同,则必定为不同元素;
①hash值相同,则和相同hash值的元素用equals方法比较,判断内容是否相同;
不重写equals和hashcode方法 ,不同的对象内存地址必定不同,则equals和hashcode值必定不同,失去了hashSet的元素唯一性的作用。