【发布时间】:2013-09-24 18:22:29
【问题描述】:
HashSet内部使用hashmap实现,为什么hashmap比hashset快?
我尝试在搜索中阅读上述帖子,但无法找到明确的答案
【问题讨论】:
-
不是我不相信你,但是你能发布一些代码来说明你在说什么吗?
标签: java
HashSet内部使用hashmap实现,为什么hashmap比hashset快?
我尝试在搜索中阅读上述帖子,但无法找到明确的答案
【问题讨论】:
标签: java
因为 HashSet 使用 HashMap。它必须产生使用 HashMap 的成本,加上 HashSet 本身的开销。
【讨论】:
Set 实现了 Collection,而 Map 没有。因此,HashSet 必须维护一些对元素的可迭代引用。它使用Map 来检查是否存在,但仍必须将元素添加到可迭代集合中。
在HashMap 中存储元素值对,而在Set 中仅存储元素。
当您为Set 调用add(value) 时,实际上您也调用了put(对于HashMap)。
Set 支持 HashMap
【讨论】: