????????hashCode() 方法返回一个对象对应的 int 哈希值。它用于基于哈希的集合类,例如 Hashtable、HashMap、LinkedHashMap 等。它与 equals() 方法密切相关。根据Java规范,使用equals()方法彼此相等的两个对象必须具有相同的哈希码。
?
hashCode()
方法返回对象的哈希码,用于哈希表等数据结构的快速查找和存储。在 Java 中,hashCode()
方法被用于实现基于哈希的集合类,例如 Hashtable
、HashMap
、LinkedHashMap
等。
equals()
方法用于比较两个对象是否相等。根据 Java 规范,对于实现了 equals()
方法的类,如果两个对象通过 equals()
方法相等,那么它们的 hashCode()
方法应该返回相同的值。换句话说,如果 a.equals(b)
返回 true
,那么 a.hashCode()
应该等于 b.hashCode()
。
这种关系的原因在于哈希表的实现。当我们向哈希表中存放对象时,首先会根据对象的哈希码确定对象应该放置在哈希表的哪个位置。此后,哈希表会使用 equals()
方法来确保哈希表中没有相同哈希码的对象。因此,保证相等的对象具有相同的哈希码是哈希表正确工作的关键。
因此,为了确保对象在哈希表中正确地存储和检索,实现了 equals()
方法的类通常也应该正确实现 hashCode()
方法,以保证哈希码的一致性。