1

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

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

4

2 回答 2

1

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

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

于 2012-05-21T07:58:27.847 回答
0

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

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

于 2012-05-21T08:01:39.560 回答