広告

Java : Iterator - API使用例

Iterator (Java SE 21 & JDK 21) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様書のおともにどうぞ。


概要

コレクションのイテレータです。 Iteratorは、Java Collections FrameworkにおいてEnumerationの代わりとなります。

クラス構成

Iterator は Collection の要素に順々にアクセスするためのインタフェースです。

関連:Iterator パターン (デザインパターン)

final var list = List.of("aaa", "bbb", "ccc");
System.out.println(list); // [aaa, bbb, ccc]

final var iterator = list.iterator();

System.out.println("-- next --");
while (iterator.hasNext()) {
    final var value = iterator.next();
    System.out.println(value);
}

// 結果
// ↓
//-- next --
//aaa
//bbb
//ccc

メソッド

default void forEachRemaining (Consumer<? super E> action)

すべての要素の処理が完了するかアクションから例外がスローされるまで、残りの各要素に対して指定されたアクションを実行します。

final var list = List.of("aaa", "bbb", "ccc");
System.out.println(list); // [aaa, bbb, ccc]

final var iterator = list.iterator();

System.out.println("-- forEachRemaining --");
iterator.forEachRemaining(value -> {
    System.out.println(value);
});

// 結果
// ↓
//-- forEachRemaining --
//aaa
//bbb
//ccc

boolean hasNext ()

反復処理でさらに要素がある場合にtrueを返します。

final var list = List.of("aaa", "bbb", "ccc");
System.out.println(list); // [aaa, bbb, ccc]

final var iterator = list.iterator();

System.out.println("-- next --");
while (iterator.hasNext()) {
    final var value = iterator.next();
    System.out.println(value);
}

// 結果
// ↓
//-- next --
//aaa
//bbb
//ccc

E next ()

反復処理で次の要素を返します。

このメソッドの使用例は、hasNext() にまとめて記載しました。
そちらのAPI使用例をご参照ください。

default void remove ()

ベースとなるコレクションから、このイテレータによって最後に返された要素を削除します(オプションの操作)。

final var list = new ArrayList<Integer>();
Collections.addAll(list, 1, 2, 3, 4, 5, 6);

System.out.println(list); // [1, 2, 3, 4, 5, 6]

final var iterator = list.iterator();
while (iterator.hasNext()) {
    final var value = iterator.next();
    if (value % 2 == 0) {
        iterator.remove();
    }
}

System.out.println(list); // [1, 3, 5]

関連記事

ページの先頭へ