For each-Schleife (Java): Unterschied zwischen den Versionen
K |
K (-Leerzeichen nach API, da Bug aufgehoben) |
||
Zeile 1: | Zeile 1: | ||
− | Die "for each" Schleife wurde mit Java 1.5 eingeführt. Sie erlaubt dem Programmier mit wenig Code alle Elemente einer Kollektion (zum Beispiel eine {{API|java/util/List|Liste}}oder ein [[Array]]) abzufragen. Die for each-Schleife kann in einigen Fällen die [[For-Schleife|for]]- oder die [[While-Schleife|while]]-Schleife ersetzen. | + | Die "for each" Schleife wurde mit Java 1.5 eingeführt. Sie erlaubt dem Programmier mit wenig Code alle Elemente einer Kollektion (zum Beispiel eine {{API|java/util/List|Liste}} oder ein [[Array]]) abzufragen. Die for each-Schleife kann in einigen Fällen die [[For-Schleife|for]]- oder die [[While-Schleife|while]]-Schleife ersetzen. |
== Syntax == | == Syntax == | ||
Zeile 24: | Zeile 24: | ||
</code=java> | </code=java> | ||
− | Für Iterables wie eine {{API|java/util/List|List}}oder ein {{API|java/util/Set|Set}}wird hingegen ein {{API|java/util/Iterator|Iterator}}verwendet: | + | Für Iterables wie eine {{API|java/util/List|List}} oder ein {{API|java/util/Set|Set}} wird hingegen ein {{API|java/util/Iterator|Iterator}} verwendet: |
<code=java>Iterable<X> iterable = ... // z.b. eine Liste | <code=java>Iterable<X> iterable = ... // z.b. eine Liste | ||
Version vom 11. Oktober 2008, 15:58 Uhr
Die "for each" Schleife wurde mit Java 1.5 eingeführt. Sie erlaubt dem Programmier mit wenig Code alle Elemente einer Kollektion (zum Beispiel eine Vorlage:API oder ein Array) abzufragen. Die for each-Schleife kann in einigen Fällen die for- oder die while-Schleife ersetzen.
Syntax
Der Syntax der Schleife lautet: <code=java>for( Typ element : kollektion ){
... // beliebiger Code, der "element" verwendet
}</code=java>
Hier gilt:
- Typ ist eine Klasse
- element ist eine Variable. Innerhalb der Schleife kann diese Variable frei verwendet werden
- kollektion ist ein Array oder eine Instanz eines Vorlage:API
Semantik
Die neue for each-Schleife kann man auch mit einer normalen for- oder while-Schleife simulieren. Dabei muss man unterscheiden, ob die Kollektion ein Array oder ein Iterable ist. Für Arrays benutzt man einen Zähler: <code=java>X[] array = ...
// for( X element : array ) for( int i = 0; i < array.length; i++ ){ X element = array[i]; ... } </code=java>
Für Iterables wie eine Vorlage:API oder ein Vorlage:API wird hingegen ein Vorlage:API verwendet: <code=java>Iterable<X> iterable = ... // z.b. eine Liste
// for( X element : iterable ) Iterator<X> iterartor = iterable.iterator(); while( iterator.hasNext() ){ X element = iterator.next(); ... } </code=java>
Zu beachten ist, dass der Typ von "element" in der for each-Schleife kein Primitives sein darf. Nur Klassen sind erlaubt.
Beispiele
Folgender Code zeigt die Verwendung der for each-Schleife.
- In Zeile 1 bis 6 wird eine Liste zusammengebaut, welche die Elemente "a", "b" und "c" beinhaltet.
- In Zeile 7 bis 10 wird jedes Element ausgegeben.
<code=java>// Kollektion aufbauen List<String> list = new ArrayList<String>();
list.add( "a" ); list.add( "b" ); list.add( "c" );
// Die for each-Schleife anwenden for( String element : list ){ System.out.println( "Dies war in der Liste: " + element ); }</code=java>
Ohne den Code der Schleife zu ändern, kann man auch die Elemente eines Arrays betrachten. <code=java>String[] array = { "a", "b", "c" };
for( String element : array ){ System.out.println( "Dies war in dem Array: " + element ); } </code=java>