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