HashSet 和 HashMap 的区别?

新手上路,请多包涵

除了 HashSet 不允许重复值之外, HashMapHashSet 之间有什么区别?

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

原文由 SpikETidE 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 515
2 个回答

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

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

当您正在寻找最好的 Collection 时,本 教程 是一个很好的起点。如果你真的想知道发生了什么, 也有一本相关的书

原文由 justkt 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

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

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

在 HashSet 中,不能有重复的元素。

原文由 b.roth 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题