【发布时间】:2019-12-11 14:42:21
【问题描述】:
equals()和hashCode()的实现应该遵循这些规则。
- 如果
o1.equals(o2),则o1.hashCode() == o2.hashCode()应始终为真。 - 如果
o1.hashCode() == o2.hashCode()为真,并不意味着o1.equals(o2)为真。
如果o1.hashCode() == o2.hashCode() 为真。我知道,如果两个对象相等,那么这两个对象应该返回相同的哈希码。如果两个对象的哈希码相同,为什么不代表o1.equals(o2)?
【问题讨论】:
-
出于同样的原因,所有叫“Rezo”的人都不是你。
-
正确的说法是“不是所有叫 Rezo 的人都是你”。我们有经验证据表明至少它们是。 ;-)