我使用一个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,是因为我想先回到列表中,然后进行编辑。
发布于 2017-11-03 00:51:37
ListIterator跟踪当前索引,因此您可以在调用doSomething后保存它并进行倒带。
int pos = listIterator.nextIndex();
doSomething(listIterator);
while (listIterator.nextIndex() > pos) {
listIterator.previous();
}这假设doSomething只提升迭代器。
https://stackoverflow.com/questions/47086266
复制相似问题