for each とか forEach とか色々な書かれ方があるけれども、Effective Java では「for-each」とのこと。
以前の for 文よりも簡単に書けるので便利。
(1)配列の for 文
String temp = null;
for (int i = 0; i < array.length; i++) {
temp = array[i];
System.out.println("length:" + temp.length());
}
↓
for (String temp : array) {
System.out.println("length:" + temp.length());
}
(2)コレクションの for 文(インデックス使用時)
String temp = null;
for (int i = 0; i < list.size(); i++) {
temp = list.get(i);
System.out.println("length:" + temp.length());
}
↓
for (String temp : list) {
System.out.println("length:" + temp.length());
}
(3)コレクションの for 文(Iterator 使用時)
for (Iteratori = list.iterator(); i.hasNext();) { System.out.println("length:" + i.next().length()); }
↓
for (String temp : list) {
System.out.println("length:" + temp.length());
}
ポイント
- 配列・コレクション共に、for 文の書き方を統一できる(同じにできる)。
- 変数の定義を減らせる。(インデックスや Iterator が不要)
- 通常の for 文と比較して、パフォーマンスに差がない。(場合によっては上回ることも)
for-each が使えないケース
以下の場合は、通常の for 文(インデックスや Iterator を使用するもの)を使用せざるを得ない。
- 特定の要素を変更・削除する場合(変換・フィルタリング)
- 複数のコレクションを並列でループさせる場合
オヌヌメ
本当は英語版がオヌヌメ。でも該当商品の情報が取れない!(´・ω・)
![Effective Java 第2版 (The Java Series) Effective Java 第2版 (The Java Series)](https://images-fe.ssl-images-amazon.com/images/I/51E1m-weAXL._SL160_.jpg)
Effective Java 第2版 (The Java Series)
- 作者: Joshua Bloch,柴田芳樹
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2008/11/27
- メディア: 単行本(ソフトカバー)
- 購入: 77人 クリック: 936回
- この商品を含むブログ (264件) を見る