0

在给定子列表开始和结束的迭代器的情况下,Java 中是否有类似列表的容器提供在恒定时间内用另一个列表替换子列表的能力?

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

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

// Initialize the above variables correctly...

l1.replace(i1, i2, l2);

如果我滚动自己的链表,这会很容易,所以我认为这是使用 Collections 的可行任务。

提前致谢!

4

2 回答 2

1

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

如果我滚动自己的链表,这会很容易,所以我认为这是使用 Collections 的可行任务。

不完全的。即使滚动您自己的实现,您也无法在恒定时间内以某种方式执行此操作

  • 只会改变l1,不会l2
  • 会让你不止一次地做同样的操作,也许用l3andl2

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

于 2013-10-10T01:22:32.237 回答
0

看看AbstractList.html#addAll

于 2013-10-10T01:02:44.647 回答