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

问题描述 投票:0回答:1

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

我曾考虑过使用双重哈希,但是我找不到在Java中执行此操作的方法。我也尝试过搜索SO,但是大多数问题都在讨论如何解决冲突解决等问题,而不是如何实现解决方案。如果没有用于执行双重哈希的库,谁能指出我任何简单的替代方法?

java hashmap collision hashcode hash-collision
1个回答
0
投票

双散列可能是您想要在生产代码中执行的操作,但是对于课堂练习,这可能是一个过大的杀手。

您应该做的是实现一个附加到哈希表每个bucket的链接列表,当您遇到“冲突”(意味着多个对象映射到数组中的同一键)时,只需使用新对象将另一个链接添加到列表。可以找到一个很好的例证here

可以在此处找到很好的解释以及展示此解决方案的直观图表:https://www.geeksforgeeks.org/internal-working-of-hashmap-java/

[您可能还会找到以下相关的SO问题+答案:What exactly is bucket in hashmap?

© www.soinside.com 2019 - 2024. All rights reserved.