[Core java编程]说,如果我覆盖Object.equals(),那么我应该同时覆盖Object.hashCode()。
这对我来说很奇怪,如果我不同时重写hashCode(),逻辑上是否有可能发生错误?
您能帮助举一个例子说明吗?
非常感谢。
答案 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方法必须产生相同的整数结果。