<分区>
Possible Duplicate:
How does Java hashmap work?
有人可以向我解释一下 Java 中的 HashSet 是如何工作的,以及为什么它们比使用 ArrayList 更快吗?
<分区>
Possible Duplicate:
How does Java hashmap work?
有人可以向我解释一下 Java 中的 HashSet 是如何工作的,以及为什么它们比使用 ArrayList 更快吗?
最佳答案
HashSet
实际上是一个 HashMap
,其中的值始终相同。
HashMap
的工作方式在很多地方都有描述(它也被称为“哈希表”)。简而言之:它生成键(对象)的哈希值并将它们定位到一个表中。然后每次查找键时,都会计算它的哈希值,并直接引用表中的存储桶。这意味着您只有一个操作(最好的情况)来访问 map 。
HashSet
只包含键,所以 .contains(..)
是 O(1)
。 remove(..)
是 HashSet
比 ArrayList
(O(n))更快的唯一操作。迭代相同,加法相同。
关于java - Java 中的 HashSet 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9119840/