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

目次

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

Iteratorでループ処理を行う

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("1","2","3"));

		Iterator<String> c2 = c1.iterator();
		
		String a;
		while (c2.hasNext()) {
			a = c2.next();
			System.out.println(a); //1 2 3
		}
	}
}

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

point

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

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

 

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

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("1","2","3"));

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

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

point

default void remove()

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

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

関連の記事

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

△上に戻る