Kle*_*ems 3 java algorithm list
题:
这是可能的,因为LinkedList可能是一个双向链表(否则它无法实现Deque接口).并且追加双向链表是0(1)操作.
该addAll方法不会在恒定时间内运行.
题:
它也可能是因为LinkedHashSet"维护一个贯穿其所有条目的双向链表".
您需要实现自己的类.本LinkedList类不暴露其内部节点的结构,所以你不能仅仅指向它的最后一个节点到另一个人的第一个节点LinkedList.
答案类似于LinkedHashSet:虽然它确实维护了这个双向链接列表,但您无法访问它.
你的假设是基于没有封装 - 即当我怀疑它不是时,LinkedHashSet它愿意将其内部暴露LinkedList给外部世界.
同样加入两个链接列表 - 我不知道每个节点是否知道它所在的列表,但这肯定会破坏你的固定时间附加.即使他们不这样做,只要你将一个列表的头部附加到另一个列表的尾部,你就会遇到问题 - 你有两个列表都指向相同的数据,这会产生一些奇怪的后果.
换句话说,这两种操作在计算机科学意义上都是可行的,您可以构建自己的实现来支持它们,但这并不意味着Java API以支持这些操作的方式公开其内部.