The HIRO Says

If you smell what The HIRO is cooking!!!

for-each

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 (Iterator i = list.iterator(); i.hasNext();) {
         System.out.println("length:" + i.next().length());
     }

     ↓

     for (String temp : list) {
         System.out.println("length:" + temp.length());
     }

ポイント

  1. 配列・コレクション共に、for 文の書き方を統一できる(同じにできる)。
  2. 変数の定義を減らせる。(インデックスや Iterator が不要)
  3. 通常の for 文と比較して、パフォーマンスに差がない。(場合によっては上回ることも)

for-each が使えないケース

以下の場合は、通常の for 文(インデックスや Iterator を使用するもの)を使用せざるを得ない。

  1. 特定の要素を変更・削除する場合(変換・フィルタリング)
  2. 複数のコレクションを並列でループさせる場合

オヌヌメ

本当は英語版がオヌヌメ。でも該当商品の情報が取れない!(´・ω・)

Effective Java 第2版 (The Java Series)

Effective Java 第2版 (The Java Series)