Top / Java / Tiger / 拡張for文

J2SE5.0から、For文がいろいろ拡張されました。たとえば以下のような構文をサポートします。

List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
    list.add(new Integer(i));
}

for (Integer integer : list) { <-これ
    System.out.println(integer);
}

//いままではこのように書いていた
Iterator<Integer> e = list.iterator();
while (e.hasNext()) {
  Integer integer = e.next();
  System.out.println(integer);
}

今まではIteratorを取得してコレクション内部にアクセスしてましたが、

for ([Collection内のクラス名] [変数名] : [Collectionのインスタンス]) {
    System.out.println([変数名]);
}

といった書き方でアクセスすることができます。簡単ですね。ちなみにコレクションをGenericsで書かなかった場合は

List list = new ArrayList();
for (int i = 0; i < 10; i++) {
  list.add(new Integer(i));
}

for (Object integer : list) {
  System.out.println((Integer) integer);
}

などのように多少のキャストが発生します。Genericsとともに使用するととてもさっぱりします。

拡張for文は配列にも使用できます。以下のような感じ。

String[] arrays = new String[] { "abc", "def", "ghi", "jkl", "mno" };
for (String string : arrays) {
  System.out.println(string);
}

簡単ですね。


この記事は

選択肢 投票
おもしろかった 13  
そうでもない 1  

Top / Java / Tiger / 拡張for文

現在のアクセス:11080


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-07-27 (水) 15:40:05 (4649d)