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

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
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:

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>