Hashset叫“hash”集? [复制]

Posted

技术标签:

【中文标题】Hashset叫“hash”集? [复制]【英文标题】:Hashset is called "hash" set? [duplicate] 【发布时间】:2016-03-26 18:22:30 【问题描述】:

我知道HashSetSet 接口的实现,但是我在理解“哈希”时遇到了问题。它似乎和Set 一样工作,但是为什么它被称为“hash”呢?

【问题讨论】:

【参考方案1】:

有很多方法可以实现 Set 接口。 HashSet 就是其中之一。它使用底层HashMap 来存储Set 的元素。 “哈希”部分是指hashCode,用于将每个元素映射到数组的索引,以实现高效查找。

【讨论】:

那么在底层的hashmap中,key是value,value部分是数组的索引,还是key是数组的索引,value部分是value? @sevenxuguang HashSet的元素是底层HashMap中的key。该值只是一个虚拟对象。数组的索引是根据元素的hashCode 计算的。

以上是关于Hashset叫“hash”集? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Hash+哈希表+HashMap+HashSet

Java提高篇——通过分析 JDK 源代码研究 Hash 存储机制

hash值

HashSet与HashMap

Java HashSet

java集合之HashSet