Java How To
 


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);
	}
		

Formatierter Quell-Code

Java-Source