作者:小永远佳瞳_186 | 来源:互联网 | 2023-05-19 12:00
如果2个对象相等(equals)那么这2个对象返回的hashcode必须相同所以如果对象重写(override)了equals(Objecto),不同时重写hashcode(),可能
如果2个对象相等(equals) 那么这2个对象返回的hashcode必须相同
所以如果对象重写(override)了equals(Object o),不同时重写hashcode(),可能出现2个对象相等(equals)但hashcode却不相同时候,此时就需要重写hashcode()了。
通常情况下hashCode和equals需要一起被重写,hashCode只可以依赖于equals依赖的域来产生值
网上搜索“ 如何在Java中避免equals方法的隐藏陷阱 ”对理解这个问题有帮助