如果有hashCode(),为什么Java需要equals()?

Zha*_*bul 7 java object

如果两个对象返回相同的hashCode,是不是意味着它们是相等的?或者我们需要等于防止碰撞?

我可以通过比较hashCodes来实现equals吗?

shm*_*ova 21

如果两个对象具有相同的hashCode,则它们不一定相等.否则你会发现完美的哈希函数.但事实恰恰相反 - 如果对象相等,那么它们必须具有相同的hashCode.

  • 示例:`"FB".hashCode()=="Ea".hashCode()`. (7认同)

ΦXo*_*a ツ 9

hashCodeEquals是有关对象的不同信息

考虑类似于哈希码为生日的人,

在那个场景中,你和许多其他人拥有相同的b-day(相同的哈希码),但是你不是同一个人.