HashSet 和 LinkedHashSet 有什么区别
-
12-12-2019 - |
题
我看到了 LinkedHashSet
延伸 HashSet
我知道它可以维持秩序。
然而,从检查JDK中的代码来看,似乎 LinkedHashSet
仅包含构造函数而没有实现,所以我猜所有逻辑都发生在 HashSet
?
如果这是正确的,为什么要这样设计呢?看起来很混乱。
编辑: 这个问题有一个不幸的错误。我写 HashMap
和 LinkedHashMap
代替 HashSet
和 LinkedHashSet
. 。我修复了问题,如果可能的话请回答。
另外,我很感兴趣为什么 Java 设计者选择这样实现它。
解决方案
是的, LinkedHashMap
调用它的超级构造函数。它所做的一件事是覆盖 init()
方法,由超级构造函数调用。
这 LinkedHashMap
是一个 HashMap
添加了双向链表实现。
其他提示
正如您所说,两种数据结构之间的区别在于 LinkedHashMap
是一个 HashMap
保留对的插入顺序。
因此,链接的目的是用作 HashMap
通过标准方法 HashMap
唯一添加的方法是 删除最古老的条目(), ,如果您想处理数据结构的“列表”部分,则很有用。
不隶属于 StackOverflow