For each-Schleife (Java): Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
 
K (1 Versionen)
(kein Unterschied)

Version vom 13. Juni 2007, 18:44 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:

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>