2014年3月24日月曜日
Java ForEach文
Java5.0以降追加されたForEach文というものがあります。
恥ずかしい話ですが最近まで知りませんでした。ので忘れないうちにメモ...
用途としては、配列の中身を順に1つずつ取り出して扱いたいときに使います。
式は以下のとおり。
ForEach文の式
===============================================
for(取り出した値を入れる型と変数名 : 配列名) {
処理
}
===============================================
For文はセミコロンを使いますが、こちらはコロンですね。
つい癖で間違えそうです。
お気づきかとは思いますが、
「配列の中身を順に1つずつ取り出して扱う」という処理自体は、For文でも書けます。\
しかし、ForEachを使うと以下のようなメリットがあります。
====================================================
*コードが短く済む
*読みやすい
*配列の長さを意識する必要がない
//長さを指定し使用すると参照できずに例外となる場合も
//(大抵の場合、lengthを使うとは思いますが。)
====================================================
へえ~なるほど。
実際にFor文とForEach文で同じ処理を書き比べてみます。
【処理】
*listという名前の文字列を入れた配列があり、
その中の値を順にコンソール上に表示させる。
まずはFor文
====================================================
String str = "";
String[] list = {"a","b","c"}; //String型の配列list
for(int i ; i < list.length() ; i++ ){
str = list[i];
System.out.println(str);
}
【実行結果】
a
b
c
====================================================
一般的であろう、配列の長さをlength()によって求め、
その回数分For文で回す~という書き方をしました。
(多分あってる)
そしてForEach文だとこうなります。
====================================================
String[] list = {"a","b","c"};
for(String str : list) {
System.out.println(str);
}
【実行結果】
a
b
c
====================================================
一目瞭然ですね。ForEach文のほうが明らかに短いですし、読みやすいです。
いずれ速度を測って追記します。