我看到了 LinkedHashSet 延伸 HashSet 我知道它可以维持秩序。
然而,从检查JDK中的代码来看,似乎 LinkedHashSet 仅包含构造函数而没有实现,所以我猜所有逻辑都发生在 HashSet?
如果这是正确的,为什么要这样设计呢?看起来很混乱。

编辑: 这个问题有一个不幸的错误。我写 HashMapLinkedHashMap 代替 HashSetLinkedHashSet. 。我修复了问题,如果可能的话请回答。
另外,我很感兴趣为什么 Java 设计者选择这样实现它。

有帮助吗?

解决方案

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

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

其他提示

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

因此,链接的目的是用作 HashMap 通过标准方法 HashMap 唯一添加的方法是 删除最古老的条目(), ,如果您想处理数据结构的“列表”部分,则很有用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top