HashSet和LinkedHashSet之间的区别是什么

时间:2012-05-21 07:52:57

标签: java hashset linkedhashset

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

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

2 个答案:

答案 0 :(得分:1)

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

LinkedHashMapHashMap,其中添加了双向链接列表实现。

答案 1 :(得分:0)

正如您所说,两个数据结构之间的区别在于LinkedHashMapHashMap,它保留了对的插入顺序。

因此,链接版本旨在通过HashMap的标准方法用作HashMap,并且添加的唯一方法是removeEldestEntry(),如果您要处理“列表”,则非常有用“数据结构的一部分。