Java 5.0 から、イテレータを使用する代わりに、拡張forループ でコレクションの要素を順に参照することができるようになりました。
[構文]
for ( 宣言
: 参照
) 文
[意味]
- 「参照」に、配列名か、コレクションの名前を指定します。
「宣言」には、配列の要素の型または、コレクションの要素の型と、
任意の名前を指定します。
例えば、 Collection<String> setOfString ; であれば、
for ( String s : setOfString ) {
System.out.println(s);
}
と書くことにより、setOfString の要素を順に参照することができます。
- 上記の例は、
for ( Iterator<String> i = setOfString.iterator(); i.hasNext() ; ) {
String s = i.next();
System.out.println(s);
}
と同等です。あるいは、
Iterator<String> i = setOfString.iterator();
while ( i.hasNext() ) {
String s = i.next();
System.out.println(s);
}
と同等です。あるいは、Java 1.4 以前の書き方
Iterator i = setOfString.iterator();
while ( i.hasNext() ) {
String s = (String) i.next();
System.out.println(s);
}
と同等です。
- コロン(:)を「in」と思って読み、上記の例を for each String s in setOfString
と読むとよい。
このため、この構文は for-each 構文と呼ばれる。
[Set の例]
[配列の例] 整数配列の合計を計算する sum メソッド
int sum(int[] arg) {
int value = 0;
for(int x : arg) value += x;
return value;
}