【问题标题】:what's the difference between HashSet and LinkedHashSetHashSet 和 LinkedHashSet 有什么区别
【发布时间】:2012-05-21 07:52:56
【问题描述】:

我看到LinkedHashSet 扩展了HashSet,我知道它保留了秩序。
但是,通过检查 JDK 中的代码,LinkedHashSet 似乎只包含构造函数而没有实现,所以我猜所有的逻辑都发生在 HashSet?
如果这是正确的,为什么要这样设计?看起来很混乱。

编辑:问题中有一个不幸的错误。我写了HashMapLinkedHashMap 而不是HashSetLinkedHashSet。如果可能的话,我已经解决了这个问题。
另外,我很感兴趣为什么 Java 设计者选择这样实现它。

【问题讨论】:

标签: java hashset linkedhashset


【解决方案1】:

是的,LinkedHashMap 调用它的超级构造函数。它所做的一件事是重写由超级构造函数调用的init() 方法。

LinkedHashMap 是一个添加了双向链表实现的HashMap

【讨论】:

  • 我编辑了这个问题,我正在寻找关于LinkedHashSetHashSet 的新答案
【解决方案2】:

正如你所说,两种数据结构之间的区别在于LinkedHashMap 是一个HashMap,它保留了对的插入顺序。

因此,Linked 旨在通过HashMap 的标准方法用作HashMap,而添加的唯一方法是removeEldestEntry(),如果您想处理数据结构的“列表”部分,这很有用.

【讨论】:

  • 我编辑了这个问题,我正在寻找关于LinkedHashSetHashSet 的新答案
猜你喜欢
  • 1970-01-01
  • 2011-07-05
  • 1970-01-01
  • 1970-01-01
  • 2013-08-30
  • 2011-01-31
  • 2011-07-02
  • 1970-01-01
  • 2017-04-29
相关资源
最近更新 更多