首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HashMap中的哈希冲突

HashMap中的哈希冲突
EN

Stack Overflow用户
提问于 2016-01-29 11:04:40
回答 1查看 254关注 0票数 1

我知道在Java的HashMap中有两种方法可以发生哈希冲突,

1.hashCode() for Key Object产生的hash value与已经生成的hash value相同(即使哈希桶尚未满) 2.散列桶已经满了,所以新的Entry必须使用现有的索引。

如果使用Java的HashMapsituation#2将是非常罕见的,因为允许的条目数量太多,并且自动调整大小(参见My other question )

我的理解正确吗?

但出于理论知识的考虑,程序员或JVM是否做了什么或可以做什么来避免场景# 2?或

允许哈希桶尽可能大,然后继续调整大小是唯一的策略吗?(与HashMap的情况一样)。

我想,作为一个程序员,我应该只专注于编写一个好的hasCode(),而不必担心scenario#2 (因为API已经解决了这个问题)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-29 11:07:25

我认为#2是#1的一个特例,它实际上是一样的,因为当HashMap决定将新元素放在哪里时,它的决定并不是因为其他的元素都满了,而是因为hashCode与已经在映射中的元素相同。

我同意,你应该关注hasCode(),参见:Creating a hashCode() Method - Java

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

https://stackoverflow.com/questions/35082909

复制
相关文章

相似问题

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