hashCode 属性
此对象的哈希码。
哈希码是一个整数,表示影响 operator == 比较的对象状态。
所有对象都有哈希码。由 Object 实现的默认哈希码仅表示对象的身份,就像默认的 operator == 实现仅考虑如果对象相同则认为它们相等一样(参见 identityHashCode)。
如果 operator == 被覆盖以使用对象状态,则哈希码也必须更改以表示该状态,否则对象不能用于像默认的 Set 和 Map 实现这样的基于哈希的数据结构。
根据 operator == 认为相等的对象必须有相同的哈希码。对象的哈希码仅在对象以影响相等性的方式更改时才应更改。对哈希码没有进一步的要求。它们不需要在程序执行的多次执行之间保持一致,也没有分布保证。
不等于的对象允许有相同的哈希码。从技术上讲,甚至允许所有实例都有相同的哈希码,但如果冲突过于频繁,可能会降低像 HashSet 或 HashMap 这样的基于哈希的数据结构的效率。
如果子类覆盖 hashCode,则它应该同时覆盖 operator == 操作符以保持一致性。
实现
external int get hashCode;