用Java克隆迭代器

时间:2009-10-09 08:29:35

标签: java list iterator

我在Java中有一个LinkedList,一个浏览列表的迭代器,我想克隆迭代器,根据原始迭代器的位置对列表进行一些临时的“向前看”处理。

据我所知,在任何情况下都无法克隆迭代器,但有没有办法将迭代器克隆到LinkedList(或保存并恢复其状态)?

2 个答案:

答案 0 :(得分:11)

这是可能的,但Sun确保你不能(通过让这个课程成为私人)。

但也许您可以使用listIterator()而非普通iterator()来实现您想要的效果。 ListIterator可以向两个方向移动。

答案 1 :(得分:1)

使用ListIterator,您可以存储下一个元素的索引,并可以根据该索引获得新的ListIterator

像这样(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);