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