gpt4 book ai didi

java - 将 LinkedHashSet 转换为列表

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:31:13 28 4
gpt4 key购买 nike

  • 假设列表 b 是一个链表。
  • 假设列表 a 也是一个链表。

问题:

  • 如何在恒定时间内追加这些列表?

有可能,因为LinkedList估计是一个双向链表(否则无法实现Deque接口(interface))。追加双向链表是一个 0(1) 操作。

addAll 方法不在恒定时间内运行。

问题:

  • 如何在恒定时间内将 LinkedHashSet 转换为列表?

这也可能是因为 LinkedHashSet“维护一个贯穿其所有条目的双向链表”。

最佳答案

您的假设是基于无封装 - 即 LinkedHashSet 愿意将其内部 LinkedList 暴露给外界,而我怀疑它不是。

同样加入两个链表——我不知道每个节点是否知道它在哪个列表中,但这肯定有可能破坏你的恒定时间追加。即使他们不这样做,一旦您将一个列表的头部附加到另一个列表的尾部,您就会遇到问题 - 您有两个列表都引用相同的数据,这会产生一些奇怪的后果。

换句话说,这两种操作在计算机科学意义上都是可行的,您可以构建自己的实现来支持它们,但这并不意味着 Java API 在一种实现这些操作的方法。

关于java - 将 LinkedHashSet 转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6061288/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com