Die erweiterte for-Schleife gestattet es, auf einfache Weise listenartige Datenstrukturen und Arrays zu durchlaufen.v.5.0

Seit Java 5 gibt es eine Struktur, die leicht unübersichtlich werdende Quelltexte mit Iteratoren und for-Schleifen mit Zählvariablen vermeiden hilft. Sie ähnelt der u.a. aus PHP bekannten foreach -Schleife. Ihre allgemeine Syntax sieht wie folgt aus.

for (datentyp bezeichner : ausdruck) {
    anweisung;
}

wobei der Doppelpunkt als "in" gesprochen wird. Ein konkretes Beispiel zeigt das folgende Durchwandern einer LinkedList :

import java.util.LinkedList;
public class ErweiterteForSchleife {
    public static void main(String[] args) {
        LinkedList<String> l = new LinkedList<String>();
        l.add("eins");
        l.add("zwei");
        l.add("drei");
        for(String s : l)
            System.out.println(s);
    }
}

Gesprochen wird dies: "for each String s in l...".

Oracle empfiehlt, die erweiterte for-Schleife wo möglich auch für Arrays zu verwenden.1 Gelegentlich im Internet zu findende Dikussionen, nach denen dies bei großen Arrays primitiver Datentypen aus Performance-Gründen nicht zu empfehlen sei, müssen daher skeptisch gesehen werden.

int[] i = {1,2,3};
for (int n : i)
    System.out.println(n);

Aus syntaktischen Gründen kann die erweiterte for-Schleife zum Durchlaufen von Arrays natürlich nicht in jedem Falle verwendet werden, da z.B. die Zählvariable nicht zur Verfügung steht.

1) http://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html und
http://docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html