两个对象的hashcode相同,这两个对象可能不相等,出现hash碰撞的情景
hashcode不相同肯定不是一个对象
equals
方法判断两个对象是相等的,那这两个对象的 hashCode
值也要相等,因为equals可能你进行了重写,比较的是对象的值。
hashcode可以缩小使用equals的频率,对于去重功能的数据结构来说(hashset)。只有当hashcode相同,才进行equals比较
如果重写 equals()
时没有重写 hashCode()
方法的话就可能会导致 equals
方法判断是相等的两个对象,hashCode
值却不相等,所以要同时进行重写。