java - Object的**hashCode**函数——jdk如何使用它?

标签 java hashtable

我知道,每当您重写 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/

相关文章:

java - 存储库中缺少 bean

java - 从 ArrayList 获取特定类型的第一个元素

java - 使用 char 数组作为 Hashtable 键

java - 在单线程环境中使用Hashtable等线程安全集合类有什么缺点吗?

java - 重写泛型类中的方法

java - 在 Mobile Flex 编程中为多个按钮创建一个事件处理程序

java - 从 Java 中的子类构造函数调用父类(super class)

c++ - 构造函数不更新类成员变量

c - uthash:2级哈希表,在嵌套表中添加新元素

java - 尝试打印哈希表,但我不断获取内存位置