在集合中比如HashSet中,要求放入的對象不能重复怎么判定呢?
首先会调用hashcode和equals如果hashcode和equals相等,则继续调用equals也相等,则认为重复
如果重写equals后,如果不重写hashcode和equals则hashcode和equals就是继承自Object的,返回内存编码这时候可能出现equals相等,而hashcode和equals不等你的对象使用集合时,就会等不到正确的结果
重写equals时重写hashcode和equals应该是为了保证在集合类中的一致性
equals相等指的是“内容”相等,不重写equals是调用继承自Object的equals而Object是用"=="实现的.。重写equals要根据自己要比较的对象来确定Java
这样重写 hashcode囷equals可以说让 获得的哈希码相同
判断hashcode和equals与equals是否相同,可以认为是判断是否是同一个元素为了让不同的元素hashcode和equals值不同,即使hashcode和equals相同equals不同那麼也不是相同元素。