什么是HashSet的和LinkedHashSet的区别(what's the differ

2019-10-16 17:34发布

我看到LinkedHashSet扩展HashSet ,我知道它保留秩序。
但是,从JDK检查代码似乎LinkedHashSet只包含constuctor并没有实现,所以我想所有的逻辑发生在HashSet
如果这是正确的,为什么会设计这样呢? 它似乎非常混乱。

编辑:有一个在问题不幸的错误。 我写HashMapLinkedHashMap ,而不是HashSetLinkedHashSet 。 我固定的问题,如果可能的回答。
另外,我很感兴趣,为什么Java的设计者选择来实现它这样的。

Answer 1:

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

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



Answer 2:

至于你说的这两个数据结构之间的区别在于, LinkedHashMap是一个HashMap是保持对的插入顺序。

因此,链接的一个目的是用作HashMap通过标准方法HashMap和添加的唯一方法是removeEldestEntry() ,如果你要处理的数据结构的“清单”的一部分,是有用的。



文章来源: what's the difference between HashSet and LinkedHashSet