只要重写在一个类中重写equals方法,那就一定要重写hashcode方法,因为两个对象只要equals
返回值为true
,那么他俩的hashcode
就一定相同。
那为什么不可以提前先写好hashcode
函数,然后在equals
函数里面直接来一行if(this.hashcode() == otherObject.hashcode()) return true;else return false
;就行了?
hashcode相同,两个对象可以相同,可以不同
hascode不同,两个对象必须不同。
这是hashcode的原则。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。