java.util.Iterator

Iterator(反復子)とは、配列やそれに類似するデータ構造の各要素に対する繰り返し処理の抽象化である。java.util.Iteratorインタフェースはコレクションの反復子であり、コレクションの要素をひとつずつ順番に処理するために用いられる。

目次

  1. メソッド
    1. remove
  2. for ループ

メソッド

java.util.Iteratorインタフェースには、次のメソッドが含まれる。

java.util.Iterator<E>インタフェースのメソッド
メソッド 説明
entrySet マップに含まれるマップのSetビューを返す。
keySet マップに含まれるキーのSetビューを返す。
remove コレクションから要素を削除する。

remove

イテレータで現在指している(直前に next() で取得した)要素をコレクションから削除する。

remove メソッドを呼び出すには、以下に示す条件がある。

コレクションから要素を削除する例を次に示す。

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(4);

        // イテレータの取得
        Iterator<Integer> it = numbers.iterator();

        while (it.hasNext()) {
            Integer num = it.next(); // 次の要素を取得(必須)
            
            if (num % 2 == 0) {
                it.remove(); // 現在の要素を安全に削除
            }
        }

        System.out.println(numbers); // 出力: [1, 3]
    }
}

for ループ

Iterator インタフェースを使用した for ループの例を次に示す。

package com.segakuin.example;

import java.util.ArrayList;
import java.util.Iterator;

public class IteratorSample {
    public static void main(String[] args) {
        ArrayList<String> array = new ArrayList<String>();

        array.add("first");
        array.add("second");
        array.add("third");

        for (Iterator<String> i = array.iterator(); i.hasNext(); ) {
            System.out.println(i.next());
        }
    }
}