hashCode 属性

int hashCode
重写

此对象的哈希码。

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

所有对象都有哈希码。由 Object 实现的默认哈希码仅表示对象的标识,就像默认的 运算符 == 实现仅考虑对象相同(如果它们是相同的)一样(见 identityHashCode)。

如果 运算符 == 被重写以使用对象状态代替,则哈希码也必须更改,以表示该状态;否则,对象无法用于像默认的 SetMap 实现这样的基于哈希的数据结构。

根据 运算符 == 认为相等的对象的哈希码必须相同。如果对象在影响相等性的方式上改变,则对象的哈希码应该只改变。对哈希码没有其他要求。它们不需要在程序执行之间保持一致性,也没有分布保证。

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

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

实现

int get hashCode => _duration.hashCode;