我知道,每当您重写 equals
方法时,您也应该重写 hashCode
方法。
但我不确定的是,JDK 如何使用它?
例如 HashSet
/HashMap
是使用哈希表的 set/map 实现,那么说该表使用对象的 hash_code 作为其 hash_function 的键是否正确?
最佳答案
So is correct to say that this table use the object's hash_code as key for their hash_function?
差不多了。 hashCode()
实际上是哈希函数。因此,每当 HashMap 尝试查找键或放置键时,它都会调用键的 hashCode() 方法并使用它(带有一些位掩码)来查找适当的元素哈希表。
另请注意,它不是由 JVM 直接使用,而是由某些类使用。
关于java - Object的**hashCode**函数——jdk如何使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37762064/