重写equals方法时,为什么还要重写hashCode方法?
在普通的业务场景里,可能没用上hashcode,所以hashcode的重要性不是很明显。
但是对于使用到hashset, hashmap之类的场景时,hashcode就很重要了,因为在这些数据结构里写入和查找一个对象,都是先考虑hashcode,再考虑equals的。默认的hashcode是内存地址换算的,每个对象都不一样。例如:如果业务上认为value=1的两个对象是相等的,而没有重写hashcode方法,就会导致放入hashset,hashmap后,无法按这个字段来找回相等的对象。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。