hashCode 属性

int hashCode
覆盖

此对象的自定义哈希码。

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

所有对象都有哈希码。由 Object 类实现的默认哈希码仅表示对象身份,就像默认的 操作符 == 实现仅将相同身份的对象视为相等一样(参见 identityHashCode)。

如果重写了 操作符 == 以使用对象状态,那么哈希码也必须更改以表示该状态,否则对象无法在类似默认的 SetMap 实现的基于哈希的数据结构中使用。

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

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

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

实现

external int get hashCode;