【问题标题】:HashSet internally uses hashmap for its implementation, then why is hashmap faster than hashset?HashSet内部使用hashmap来实现,那为什么hashmap比hashset快呢?
【发布时间】:2013-09-24 18:22:29
【问题描述】:

HashSet内部使用hashmap实现,为什么hashmap比hashset快?

我尝试在搜索中阅读上述帖子,但无法找到明确的答案

【问题讨论】:

标签: java


【解决方案1】:

因为 HashSet 使用 HashMap。它必须产生使用 HashMap 的成本,加上 HashSet 本身的开销。

【讨论】:

  • 为了澄清上述内容,Set 实现了 Collection,而 Map 没有。因此,HashSet 必须维护一些对元素的可迭代引用。它使用Map 来检查是否存在,但仍必须将元素添加到可迭代集合中。
【解决方案2】:

HashMap 中存储元素值对,而在Set 中仅存储元素。

当您为Set 调用add(value) 时,实际上您也调用了put(对于HashMap)。

Set 支持 HashMap

【讨论】:

    猜你喜欢
    • 2013-04-23
    • 2021-05-06
    • 2016-10-12
    • 2012-07-25
    • 2016-06-28
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    相关资源
    最近更新 更多