I';我使用.hashCode()创建哈希。是否有一个库可以在Java中执行双哈希以解决冲突?

I';我使用.hashCode()创建哈希。是否有一个库可以在Java中执行双哈希以解决冲突?,java,hashmap,collision,hashcode,hash-collision,Java,Hashmap,Collision,Hashcode,Hash Collision,作为一个家庭作业问题,我正在尝试使用数组创建hashmap的实现。我正在使用.hashCode()创建哈希,我需要找到一种解决冲突的方法 我曾想过使用双哈希,但在Java中找不到这样做的方法。我也尝试过搜索,但大多数问题都是讨论如何处理冲突解决等,而不是如何实现解决方案。如果没有库来执行双重散列,有人能给我指出一些简单的替代方法吗?双重散列可能是您在生产代码中想要做的事情,但对于类练习来说,这可能是一种过火的做法 相反,您应该做的是实现一个附加到每个hashmap的链接列表,当发生“冲突”(即多

作为一个家庭作业问题,我正在尝试使用数组创建hashmap的实现。我正在使用.hashCode()创建哈希,我需要找到一种解决冲突的方法


我曾想过使用双哈希,但在Java中找不到这样做的方法。我也尝试过搜索,但大多数问题都是讨论如何处理冲突解决等,而不是如何实现解决方案。如果没有库来执行双重散列,有人能给我指出一些简单的替代方法吗?

双重散列可能是您在生产代码中想要做的事情,但对于类练习来说,这可能是一种过火的做法

相反,您应该做的是实现一个附加到每个hashmap的链接列表,当发生“冲突”(即多个对象映射到数组中的同一个键)时,您只需使用新对象向列表添加另一个链接。可以找到一个很好的例子

下面可以找到一个很好的解释以及演示此解决方案的可视化图形:

您还可能会发现以下问题+答案是相关的:

听起来像是一个。您没有提供足够的信息来帮助理解为什么会有很多冲突:可能数组的大小太小了?也许您使用的负载系数太小?也许你的对象覆盖哈希代码的方式不好?等等…这并不是说我有很多碰撞,任务的一部分是创建一种处理碰撞的方法。我使用的数组的大小是输入数组的1.3倍。当
HashMap
的键发生冲突时,如果键实现
Comparable
,JDK将使用二叉树。相关: