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--
関連の記事