[Java]ListIteratorで逆ループ


Listを逆ループしたい時は、ListIteratorを使いましょう



List内要素を前方からループさせるには拡張for文を使ったり、Iteratorを使ったりします

List list = new LinkedList();
list.add("apple");
list.add("orange");
list.add("banana");
		
//拡張for文によるループ
for(String fruit : list){
  System.out.println(fruit);
}
//Iteratorによりループ
for(Iterator it=list.iterator();it.hasNext();){
  String fruit = it.next();
  System.out.println(fruit);
}

逆ループさせたい

List内要素を後方から順次アクセスしたい場合はListIteratorを利用します
List#listIterator(int)メソッドでIteratorを取得し、hasPrevious()メソッドで後方存在確認、previous()メソッドで値を取得します
サンプルコードは以下

//逆ループ
for(ListIterator it=list.listIterator(list.size()); it.hasPrevious();){
  String fruit = it.previous();
  System.out.println(fruit);
}