hashCode 属性

int hashCode
override

此对象的哈希码。

哈希码是一个表示对象状态的整数,该状态影响 运算符 == 比较。

所有对象都有哈希码。由 Object 实现的默认哈希码仅代表对象的标识,就像默认的 operator == 实现只在对象完全相同的情况下认为它们相等一样(见 identityHashCode)。

如果 运算符 == 被重写以使用对象的状态,则哈希码也必须相应更改以表示那种状态,否则该对象不能用于基于哈希的数据结构,比如默认的 SetMap 实现。

根据 运算符 == 认为相等的对象应具有相同的哈希码。对象的哈希码应仅在对象以影响相等性的方式变化时更改。对于哈希码没有进一步的要求。它们不需要在程序执行的多次执行之间保持一致,也没有分布保证。

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

如果子类重写了 hashCode,则它还应该重写 运算符 == 以保持一致性。

实现

int get hashCode => 0;