-
两个对象相同意味着hashcode值一定是相同的,但是hashcode值相同不代表对象一定相同
-
两个对象相同:hashcode值相同+equals判断为true
-
如果对象不对hashcode()进行重写,那么对象就会默认使用object类的hashcode(),这时可能出现对象并不是相等的但是恰巧hashcode值是相同的,就会导致错误的判断,当对象重写hashcode()后,会根据传入的属性进行计算得出对应的hashcode值,这时就可以保证对象相等才能计算出相等的hashcode值进而保证方法的准确性
判断两个对象是否相同其实使用equals就可以了,为什么开发中我们一般还需要重写hashcode方法?
本文讨论了Java中对象相等与hashcode的关系,指出虽然两个对象相同时hashcode值必然一致,但反之不成立。未重写equals时,可能导致误判。重写hashCode有助于确保对象相等时hashcode一致,提高方法准确性。

被折叠的 条评论
为什么被折叠?



