用常规时间用Java中的另一个列表替换子列表

时间:2013-10-10 00:56:05

标签: java list collections

在Java中是否有一个类似List的容器,它提供了在常量时间内用另一个列表替换子列表的能力,给定子列表的开头和结尾的迭代器?

例如,我可以执行以下操作:

List<T> l1, l2;
ListIterator<T> i1, i2;

// Initialize the above variables correctly...

l1.replace(i1, i2, l2);

如果我正在滚动自己的链表,这很容易,所以我认为这是一个使用集合的可行任务。

提前致谢!

2 个答案:

答案 0 :(得分:1)

不,使用内置API无法在恒定时间内完成此操作。

  

如果我正在滚动自己的链表,这很容易,所以我认为这是一个使用集合的可行任务。

不完全。即使滚动自己的实现,也不能以一种

的方式在不间断的时间内完成
  • 只会更改l1,而不会更改l2
  • 可以让您多次执行相同的操作,可能是l3l2

很容易想象,如果将这些内置到JDK API中,这些问题可能会导致意外行为,这对调试来说真的很不愉快。

答案 1 :(得分:0)