For each-Schleife (Java): Unterschied zwischen den Versionen
K (→Beispiele) |
K |
||
Zeile 60: | Zeile 60: | ||
</code=java> | </code=java> | ||
− | |||
[[Kategorie:Java]] | [[Kategorie:Java]] | ||
[[Kategorie:Java Grundlagen]] | [[Kategorie:Java Grundlagen]] |
Version vom 26. Juli 2008, 23:45 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:APIoder 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:APIoder ein Vorlage:APIwird hingegen ein Vorlage:APIverwendet: <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>