在Java中用另一个列表替换子列表
问题描述:
Java中是否存在类似List的容器,它提供了在给定子列表的开始和结束的迭代器的情况下,在常量时间内用另一个列表替换子列表的功能?在Java中用另一个列表替换子列表
例如,我可以做到以下几点:
List<T> l1, l2;
ListIterator<T> i1, i2;
// Initialize the above variables correctly...
l1.replace(i1, i2, l2);
如果我是我自己的滚动链接的列表,这将是容易的,所以我会假设这是用正宗可行的任务。
在此先感谢!
答
不,没有办法在固定时间内使用内置的API来执行此操作。
如果我在滚动我自己的链表,这很容易,所以我认为这是一个使用集合的可行任务。
不完全。即使滚动自己的实现,你不能以一种
- 只会改变
l1
,不l2
- 将让你与
l3
,做同样的操作不止一次,也许这样做在一定时间l2
很容易想象,如果这是建立在JDK的API,可能会导致意外的行为,这是非常令人不快的调试这些问题。
答
你对这种影响l2的行为是正确的。在我的情况下,这并不重要,因为l2是为了插入到l1而严格创建的,并且从不以其他方式访问。有意义的是,这通常不是理想的行为。我没有想过副作用。非常感谢! – fwilliams