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
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
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.
![](https://images.gutefrage.net/media/default/user/12_nmmslarge.png?v=1551279448000)
Habs gefunden. Bedeutet Schleife durch Array, wobei der aktuelle Wert bei jedem Durchlauf in die Variable "i" kopiert wird, korrekt?
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Zugewiesen, nicht kopiert! Das kann mitunter bei Objekten einen ganz schönen unterschied machen, je nachdem was in der Schleife passiert.
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
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();
}
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
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.