ListIterator
を使用して、オブジェクトのリストを反復処理しています。目標はリストの内容を編集することです。ここで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'を使って何をしているのか' doSomething'だけ知っているので、 'ListIterator'が終了時に同じ場所にあることを確認してください。 'previous()'を4回呼び出すことによって。 – Andreas
ありがとうございました。別のアイデアはありますか?現在の状態をdosomethingの前に保存したいのですか?+あなたはlistiteratorがまだ私の目的にとっては良いと思うか、別の構造にジャンプしなければならないと思いますか? –
イテレータの状態を保存したり、それを閉じたりコピーしたりすることはできません。あなたが**ドキュメント[** ListIterator'](https://docs.oracle.com/javase/9/docs/api/java/util/ListIterator)のjavadocを読んでいれば、すでにこれを知っているはずです。 html)。 – Andreas