hashCode 属性

int hashCode
重写

该对象的重写哈希码。

哈希码是一个表示对象状态的单一整数,该状态会影响

所有对象都拥有哈希码。由 Object 实现的默认哈希码仅代表对象的标识,与默认的 operator == 实现仅将相同(即具有相同的标识符)的对象视为相等的方式相同(请参阅 identityHashCode)。

如果 operator == 被重写为使用对象状态,则哈希码也必须更改以表示该状态,否则对象不能用于基于哈希的数据结构,例如默认的 SetMap 实现。

根据 operator == 按相等性的对象必须有相同的哈希码。对象的哈希码只有在对象更改影响相等性的方式下才应更改。哈希码没有其他要求。它们不需要在相同程序的不同执行之间保持一致,并且没有分布保证。

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

如果子类重写了 hashCode,它也应当重写 operator == 操作符以保持一致性。

实现

external int get hashCode;