HashSet和HashMap之间的区别?

2022-08-31 06:21:52

除了不允许重复值的事实之外,和 之间有什么区别?HashSetHashMapHashSet

我的意思是实施明智?这有点模糊,因为两者都使用哈希表来存储值。


答案 1

HashSet 是一个集合,例如 {1,2,3,4,5}

HashMap 是一个键 -> 值(键到值)映射,例如 {a -> 1, b -> 2, c -> 2, d -> 1}

请注意,在我上面的示例中,在 HashMap 中不能有重复的键,但它可能有重复的值。

在哈希集中,不能有重复的元素。


答案 2

它们是完全不同的结构。A 是 的实现。映射将键映射到值。密钥查找使用哈希进行。HashMapMap

另一方面,a 是 的实现。集合旨在匹配集合的数学模型。如您所见,A 确实使用 a 来支持其实现。但是,它实现了一个完全不同的接口。HashSetSetHashSetHashMap

当您正在寻找最适合您目的的内容时,本教程是一个很好的起点。如果你真的想知道发生了什么,那么也有一本书可以做到这一点Collection