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); }
簡単ですね。
この記事は
現在のアクセス:11104