株式会社イーブ|未経験・転職の方も就職可能。Javaプログラマー育成のエキスパート

HOMEJAVA技術者育成システム開発求人情報個人情報保護

第 37 回 ~ ListIterator ~

トップページ > Java技術者育成 > Javaワンポイント > 第 37 回 ~ ListIterator ~

今回のテーマは「ListIterator」です。


ListインターフェースはIteratorより高機能なListIteratorを使用できます。
従来のIteratorはコレクションを先頭から走査することしかできませんが、ListIteratorは最後の要素から先頭に向かって走査することができます。
また走査中に要素の追加や変更を行ったり、要素の位置を取得することができます。


では、サンプルでListIteratorを使ってみましょう。



import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;


public class Main {
    public static void main(String[] args) {
        List<Integer> sampleList = new ArrayList<Integer>();
        for (int i = 0; i < 20; i++) {
            sampleList.add(i + 1);
        }
        System.out.println(sampleList);


        // リストを後方から走査
        for (ListIterator<Integer> it = sampleList.listIterator(sampleList.size()); it.hasPrevious();) {
            Integer element = it.previous();
            System.out.println("テスト中の要素の位置:" + it.nextIndex());
            if (element % 2 == 0) {
                // 要素を追加
                it.add(-1);
            } else if (element % 3 == 0) {
                // 要素を削除
                it.remove();
            } else if (element % 5 == 0) {
                // 要素を変更
                it.set(10);
            }
        }
        System.out.println(sampleList);
    }
}



これでListの走査が楽になりますね。


[Javaワンポイント]内の前後の記事
第 38 回 ~ Listの範囲操作 ~
→ 第 37 回 ~ ListIterator ~
第 36 回 ~ 拡張for文とIterator ~


■更新日時での前後の記事
2月6日 お天気
→ 第 37 回 ~ ListIterator ~
2月5日 お天気