【发布时间】:2020-01-26 03:47:30
【问题描述】:
作为一个家庭作业问题,我正在尝试使用数组创建哈希图的实现。我正在使用 .hashCode() 创建哈希,我需要找到解决冲突的方法。
我曾想过使用双重哈希,但我找不到在 Java 中这样做的方法。我也尝试过搜索 SO,但大多数问题都在讨论如何处理冲突解决等,而不是如何实施解决方案。如果没有执行双重哈希的库,任何人都可以向我指出任何简单的替代方案吗?
【问题讨论】:
-
听起来像XY problem。您没有提供足够的信息来帮助理解为什么会有很多冲突:也许数组的大小太小了?也许您使用的负载因子太小?也许您的对象以不好的方式覆盖了 hashCode?等等……
-
这并不是说我有很多碰撞,部分任务是创建一种在发生碰撞时处理碰撞的方法。我使用的数组是输入数组大小的 1.3 倍。
-
如果
HashMap的键实现Comparable,则 JDK 使用二叉树。
标签: java hashmap collision hashcode hash-collision