如果在Java中我重写了“ equals()”而不是hashCode()怎么办?

时间:2019-01-07 10:35:43

标签: java object override equals hashcode

[Core java编程]说,如果我覆盖Object.equals(),那么我应该同时覆盖Object.hashCode()。

这对我来说很奇怪,如果我不同时重写hashCode(),逻辑上是否有可能发生错误?

您能帮助举一个例子说明吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

如果 mounted: function() { this.test(); new ResizeObserver(() => { this.test(); }).observe(this.g("tC")); }, a.equals(b),则true也必须为true。如果不是这种情况,请将a.hashCode() == b.hashCode()添加到a中,然后检查HashSet是否返回set.contains(b),即使false包含Set,等于a

这就是b类(在hashCode()中)的合同规定:

  

如果根据equals(Object)方法两个对象相等,则在两个对象中的每个对象上调用hashCode方法必须产生相同的整数结果。

相关问题