加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 将LinkedHashSet转换为List

发布时间:2020-12-15 05:06:08 所属栏目:Java 来源:网络整理
导读:假设列表b是LinkedList. 假设List a也是LinkedList. 题: 我如何在恒定时间附加这些列表? 这是可能的,因为LinkedList可能是一个双向链表(否则它无法实现Deque接口).并且追加双向链表是0(1)操作. addAll方法不会在常量时间运行. 题: 如何在常量时间内将Link
>假设列表b是LinkedList.
>假设List a也是LinkedList.

题:

>我如何在恒定时间附加这些列表?

这是可能的,因为LinkedList可能是一个双向链表(否则它无法实现Deque接口).并且追加双向链表是0(1)操作.

addAll方法不会在常量时间运行.

题:

>如何在常量时间内将LinkedHashSet转换为列表?

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

解决方法

您的假设基于无封装 – 即,当我怀疑它不是时,LinkedHashSet愿意将其内部LinkedList暴露给外部世界.

同样加入两个链接列表 – 我不知道每个节点是否知道它所在的列表,但这肯定会破坏你的固定时间附加.即使他们不这样做,只要你将一个列表的头部连接到另一个列表的尾部,你就会遇到问题 – 你有两个列表都指向相同的数据,这会产生一些奇怪的后果.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读