可能的重复:
在Java中,为什么equals()和hashCode()必须一致?
为什么hashCode()可以为java中的不同对象返回相同的值?
在JAVA API中我们可以看到
如果两个对象根据equals不相等,则不需要返回不同的hashCode值.
为什么会这样?
如果两个对象根据equals不相等,那么应该要求返回不同的hashCode值吗?
小智 9
散列码是AFAIR的32位整数,因此许多状态限制为2 ^ 32.您创建的几乎每个类都会有更多可能的状态,因此不可能确保不同的对象不具有相同的哈希码值.
哈希码的不等式意味着对象不相等,但是哈希码的相等意味着对象可能是相等的.
| 归档时间: |
|
| 查看次数: |
593 次 |
| 最近记录: |