为什么Eclipse实现的equals方法要比较每个值,只比较两个对象的hashCode不是更简单吗?
据我所知:
编辑:相关问题,如果 equals 实际上不需要 hashCode,为什么在实现 equals 时总是实现 hashCode?
hashCode 总是为相同的输入生成相同的哈希值
正确的。
因此,如果两个对象相等,它们应该具有相同的哈希值
正确的。
如果相等的对象具有相同的哈希值,我可以检查哈希值以确定对象是否相等
不合逻辑的推论。不相等的对象也可以具有相同的哈希码。这就是哈希码的目的。
相关问题,如果 equals 实际上不需要 hashCode,为什么在实现 equals 时总是实现 hashCode?
因为它是散列所需要的,在HashMap, HashSet,和朋友中。如果您认为您的对象永远不会被如此使用,请不要覆盖它,祝您好运。
| 归档时间: |
|
| 查看次数: |
1290 次 |
| 最近记录: |