Java Iteratorでループ処理を行うサンプル

JavaのIteratorでループ処理を行うサンプルです。

目次

サンプル Iteratorでループ処理を行う
Iteratorでループ処理を行うサンプル
  Iteratorのループ処理で要素を削除する

Iteratorでループ処理を行う

boolean hasNext()
E next()
  • Iteratorは要素を順に処理します。
  • hasNextメソッドは、要素がある場合にtrueを返します。
  • nextメソッドは、次の要素を返します。

 

Iteratorでループ処理を行うサンプル

package test1;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

public class Test1 {
	public static void main(String[] args) {
		
		List<String> c1 = new ArrayList<>(Arrays.asList("赤","黄","青"));

		Iterator<String> c2 = c1.iterator();
		
		String a;
		while (c2.hasNext()) {
			a = c2.next();
			System.out.println(a); //赤 黄 青
		}
	}
}

10行目は、ArrayListのリストを生成しています。
12行目は、Listインターフェースのiteratorメソッドで変数C2にイテレーターをセットしています。
15行目のhasNextメソッドは、要素がある場合にtrueを返します。
16行目のnextメソッドは、次の要素を返します。

以下はOracleのJava8のIteratorインタフェースのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/util/Iterator.html

 

Iteratorのループ処理で要素を削除する

default void remove()

removeメソッドは、nextメソッドで呼ばれた要素を削除します。

package test1;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

public class Test1 {
	public static void main(String[] args) {
		
		List<String> c1 = new ArrayList<>(Arrays.asList("赤","黄","青"));

		Iterator<String> c2 = c1.iterator();
		
		String a;
		while (c2.hasNext()) {
			a = c2.next();
			if (a.equals("黄")){
				c2.remove();
			}
		}
		System.out.println(c1); //[赤, 青]
	}
}

19行目は、removeメソッドで17行目のnextメソッドで呼ばれた要素を削除します。

以下は、OracleのJava8のIteratorインタフェースのremoveメソッドのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/util/Iterator.html#remove--

関連の記事

Java 拡張for文 配列やコレクションをループで取得

△上に戻る