Was bedeutet int i doppelpunkt in java?
Hey, mit einer zufälligen Arrayliste z.B. int[] meineArray.
Was bedeutet "int i : meineArray" ?
ich bin anfänger in java und verstehe die bedeutung von doppelpunkten noch nicht so ganz und es ist etwas schwer doppelpunkte zu googeln. Vielen Dank.
4 Antworten
In C# heißt das foreach-Schleife:
int[] array = new int[] { 1, 2, 3, 4 };
foreach(int i in array)
...
Also grob übersetzt: "Für jedes Element i des Typs int im Array array" soll die Schleife ausgeführt werden. In Java funktioniert das genauso:
for(int i : array)
...
Es wird also jedes Element im Feld array durchlaufen, wobei array ein Array, aber auch ein anderer Container (Listen etc.) sein kann. Während eines Schleifendurchlaufs ist die Variable i verfügbar, die den Wert des aktuellen Felds enthält. Beim ersten Durchlauf wäre i also array[0], dann array[1] usw.
for (int arrayElement : array) {
}
ist gleich mit
for(int i = 0; i < array.lenght; i++) {
int arrayElement = array[i];
}
Das geht mit allen arrays und allen Klassen, die Iterator und Iterable implementieren.
package java.lang;
import java.util.Iterator;
public abstract interface Iterable<T>
{
public abstract Iterator<T> iterator();
}
package java.util;
public abstract interface Iterator<E>
{
public abstract boolean hasNext();
public abstract E next();
public abstract void remove();
}
Habs gefunden. Bedeutet Schleife durch Array, wobei der aktuelle Wert bei jedem Durchlauf in die Variable "i" kopiert wird, korrekt?
Zugewiesen, nicht kopiert! Das kann mitunter bei Objekten einen ganz schönen unterschied machen, je nachdem was in der Schleife passiert.
Allein kann so etwas nicht stehen, sondern nur in der for-each-Schleife. Schau mal hier: http://docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html
for ( int i : meinArray ) { ... }
heißt, dass du mit der Variable i über die Integer-Werte in deinem Array meinArray iterierst. In jedem Schleifendurchlauf nimmt i den nächsten Wert im Array an.