hashCode 属性

int hashCode

该对象的哈希码。

哈希码是一个单整数,表示影响 操作符 == 比较的对象状态。

所有对象都有哈希码。由 Object 实现的默认哈希码仅表示对象的标识,就像默认的 操作符 == 不仅在对象相同的情况下考虑对象相等(请参阅 identityHashCode)。

如果 操作符 == 被覆盖以使用对象状态,则必须也要更改哈希码以表示该状态,否则对象不能用于如默认的 SetMap 实现这类基于哈希的数据结构。

对于根据 操作符 == 相等的对象,它们的哈希码必须相同。对象的哈希码仅在其状态改变并影响相等性时才应改变。对哈希码没有其他要求。它们无需在不同的程序执行之间保持一致,也没有分布保证。

不相等的对象允许具有相同的哈希码。在技术上也允许所有实例都具有相同的哈希码,但如果冲突发生得太频繁,它可能会降低如 HashSetHashMap 这样的基于哈希的数据结构的效率。

如果子类覆盖 hashCode,它还应该覆盖 操作符 == 以保持一致性。

实现

external int get hashCode;