【发布时间】:2018-04-15 14:59:24
【问题描述】:
我正在使用ListIterator 来遍历某个对象的列表。目标是编辑列表的内容。
这是我正在做的一个例子:
public class Test {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
ArrayList list = new ArrayList<>(Arrays.asList("One", "Two", "Three","Four","Five"));
ListIterator<String> listIterator = list.listIterator();
String current ;
while (listIterator.hasNext()) {
doSomething(listIterator);
current = listIterator.next();
//here I Want that current has the same value as it was Before The doSomething Call
//or in other Word , i want to save the adress of the last visired object In the List before doSomething Call.
//As a result i can iterate from this point in the List.
}
}
private static ListIterator<String> doSomething(ListIterator<String> listIterator) {
System.out.println("Dosomething " + listIterator.next()); //
System.out.println("Dosomething " + listIterator.next()); //
System.out.println("Dosomething " + listIterator.next()); //
System.out.println("Dosomething " + listIterator.next()); //
return listIterator;
}
}
你能给我一些见解吗?
我使用ListIterator 是因为我想在列表中来回切换,并用于编辑目的。
【问题讨论】:
-
只有
doSomething知道它对ListIterator的作用,因此由它来确保ListIterator在退出时与进入时位于同一位置,例如拨打previous()四次。 -
感谢您的帮助,还有其他想法吗?就像在 dosomething 调用之前保存当前状态?+ 你认为 listiterator 仍然适合我的目的还是我不得不跳转到另一个结构?
-
您不能保存迭代器的状态,也不能关闭/复制它。如果您阅读过文档,您应该已经知道这一点,即
ListIterator的javadoc。
标签: java list arraylist iterator