Java 中的克隆迭代器

2022-09-04 21:33:21

我有一个Java中的LinkedList,一个用于浏览列表的迭代器,我想克隆迭代器,以相对于原始迭代器的位置对列表进行一些临时的“提前”处理。

我知道克隆迭代器并非在所有情况下都是不可能的,但是有没有办法将迭代器克隆到LinkedList(或保存并恢复其状态)?


答案 1

这是可能的,但Sun确保你不能(通过将类设为私有)。

但是,也许您可以使用a而不是普通.来实现您想要的。A 可以双向移动。listIterator()iterator()ListIterator


答案 2

有了,你可以存储下一个元素的索引,并可以基于该索引得到一个新的索引。ListIteratorListIterator

像这样(Java 1.5示例):

LinkedList<Integer> list = new LinkedList<Integer>();  
ListIterator<Integer> lit = list.listIterator(0);  
<<do something here  >>  
int index = lit.nextIndex();  
ListIterator<Integer> litclone = list.listIterator(index);