サミルAllahverdiyev:
私はのhasNextを(削除する場合hasPreviousメソッドは仕事をしない理由私は私の質問は、なぜ私はちょうど呼び出し反復子インタフェースの直後にhaspreviousメソッドを呼び出す傾けることであるので、彼らは?何とか互いに関連)method..Areを理解しません
List<Integer> li = new ArrayList<Integer>();
ListIterator<Integer> itr = null;
li.add(22);
li.add(44);
li.add(88);
li.add(11);
li.add(33);
itr = li.listIterator();
System.out.println("In reverse order :");
System.out.println(itr.hasPrevious());
while (itr.hasPrevious()) {
System.out.print(""+itr.previous());
}
アービンド・クマールのAvinash:
あなたが先頭に終わりからナビゲーションを開始したい場合は、あなたが宣言ListIterator
として、次のとおりです。
ListIterator<Integer> itr = list.listIterator(li.size());
これは、あなたが後方に移動することができ、そこから最後にイテレータを指します。
デモ:
import java.util.List;
import java.util.ListIterator;
public class Main {
public static void main(String[] args) {
List<Integer> li = List.of(1, 2, 3, 4, 5);
ListIterator<Integer> itr = li.listIterator(li.size());
while (itr.hasPrevious()) {
System.out.println(itr.previous());
}
}
}
出力:
5
4
3
2
1
あなたは、リストの先頭から開始し、前方に移動する場合は、必ず使用して戻って行くことができますprevious
例えば
import java.util.List;
import java.util.ListIterator;
public class Main {
public static void main(String[] args) {
List<Integer> li = List.of(1, 2, 3, 4, 5);
ListIterator<Integer> itr = li.listIterator();
System.out.println("Moving forward:");
while (itr.hasNext()) {
System.out.println(itr.next());
}
System.out.println("Moving backward:");
while (itr.hasPrevious()) {
System.out.println(itr.previous());
}
}
}
出力:
Moving forward:
1
2
3
4
5
Moving backwards:
5
4
3
2
1
TL; DR、それは初めにすでにある場合ザ・イテレータは戻って移動しません。それが最後にすでにある場合は同様に、反復子は前方に移動しません。
チェックこれをコードするために。