Erweiterte For-Schleife
How To ...
Wie benutzt man die erweiterte For-Schleife (enhanced for loop)?
Hintergründe
Bei der Verwendung des Collection-Frameworks wird sehr häufig das Iterator-Interface verwendet, um über Collections zu iterieren. Seit Java 5.0 gibt es die erweiterte For-Schleife (enhanced for loop), um mit einer wesentlich vereinfachten Syntax über Collections iterieren zu können.
So geht's
Die ursprüngliche Muster, um über eine Collection zu iterieren, ist
List list = new ArrayList();
list.add(new Integer(1));
list.add(new Integer(2));
list.add(new Integer(10));
list.add(new Integer(20));
for (Iterator iter = list.iterator(); iter.hasNext();) {
// hier auch ohne Cast möglich, da println überladen
System.out.println((Integer) iter.next());
}
Bitte beachten Sie, dass explizit Integer-Objekte erzeugt werden müssen, um in der Collection gespeichert werden zu können. Beim Lesen eines Collection-Objekts muss gecastet werden (in diesem Beispiel nicht wirklich nötig, da println überlanden ist).
Die Verwendung von Generics und Autoboxing erleichtert die Sache schon ganz erheblich.
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(10);
list.add(20);
for (Iterator iter = list.iterator(); iter.hasNext();) {
System.out.println(iter.next());
}
Die Verwendung der erweiterten For-Schleife schafft nochmals eine Ersparnis an zu schreibendem Code.
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(10);
list.add(20);
for (Integer integer : list) {
System.out.println(integer);
}
