首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAVA: hashcode :有可能不止一个项目具有相同的哈希码吗?

JAVA: hashcode :有可能不止一个项目具有相同的哈希码吗?
EN

Stack Overflow用户
提问于 2015-02-13 07:22:51
回答 3查看 189关注 0票数 0

我读过一本书

“从hashcode()接收的值用作存储元素的桶号。”

我怀疑,如果桶包含多个元素(具有相同的hashcode值),那么如何区分这些元素呢?

有可能不止一个项目拥有相同的hashcode吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-13 07:26:37

通常,有两种方法可以处理两个或多个元素在哈希表中的同一个“桶”中结束的情况:

  • 一个桶可以是一个链接列表(或等效的),并包含许多元素。这就是HashMap的工作原理..。尽管在Java 8中,链接列表可以是一个二叉树。
  • 桶可以有一个有限度的大小,然后“溢出”到另一个桶。

我怀疑桶是否包含多个元素(具有相同的哈希代码值)。如何区分元素?

在Java中,HashMapHashtable和相关类使用key的equals方法来区分具有相同哈希码的键。这就是为什么我们有“哈希码/等于合同”。(请阅读这里。)

有可能不止一个项目有相同的哈希码吗?

是的是可能的。Java的标准哈希表类处理它。请参见上面的。

票数 2
EN

Stack Overflow用户

发布于 2015-02-13 07:25:31

多个元素可以具有相同的哈希代码。在这种情况下,将使用equals()方法检查该桶中的所有元素,以确定其中一个元素是否与您要查找的元素匹配。

票数 0
EN

Stack Overflow用户

发布于 2015-02-13 07:25:38

有可能有多个具有相同哈希码的元素,因为哈希码的计数是有限的。您可以通过equals()方法来区分元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28494453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档