目次
| サンプル | 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--
関連の記事
