Java equals()和hashCode()更改

Java equals()和hashCode()更改,java,object,equals,hashcode,Java,Object,Equals,Hashcode,如果的结果等于()和hashCode() 方法在对象的整个生命周期内发生更改 谢谢大家! 一个问题是,如果在将该对象添加到集合后其hashCode发生更改,则无法在HashSet或HashMap中找到该对象(当该对象是映射中的键时) 在对象的生存期内更改等于的结果可能会导致某些集合中断。例如,您可能会发现集合中存在重复的对象,因为在将第二个对象添加到集合中时,它们并不相等。可能的重复可能会导致一些内存泄漏,只要这两个方法之间的契约没有破坏,就应该可以了。当您修改对象的状态时,预期会更改结果。我不

如果
的结果等于()
hashCode()
方法在对象的整个生命周期内发生更改


谢谢大家!

一个问题是,如果在将该对象添加到集合后其
hashCode
发生更改,则无法在HashSet或HashMap中找到该对象(当该对象是映射中的键时)


在对象的生存期内更改
等于的结果可能会导致某些集合中断。例如,您可能会发现集合中存在重复的对象,因为在将第二个对象添加到集合中时,它们并不相等。

可能的重复可能会导致一些内存泄漏,只要这两个方法之间的契约没有破坏,就应该可以了。当您修改对象的状态时,预期会更改结果。我不同意这是链接问题的重复。这是指更改现有
equals
hashCode
方法的实现,而不是在创建新类型时重写超类方法。