Dienstag, 17. November 2015
Java-for Schleife wie in Python
Python arbeitet mit Sequenzen. Manchmal ist es praktisch, wenn man eine Sequenz direkt bei der
for-Schleife hin schreiben kann. Ein Beispiel:
for i in [1, 3, 2, 5, 10, -3]:
print(i, end=" ")
print()
In Java ist das ganz ähnlich möglich. Hier ein zwei Varianten:
class T {
// helper method
public static int[] list(int... values) {
return values;
}
public static void main(String[] args) {
// use helper to generate array
for (int i : list(1, 3, 2, 5, 10, -3)) {
System.out.printf("%d ", i);
}
System.out.println();
// use locally defined array
for (int i : new int[] { 1, 3, 2, 5, 10, -3 }) {
System.out.printf("%d ", i);
}
System.out.println();
}
}
Die Ausgabe sind dann die Zahlen in der Liste:
1 3 2 5 10 -3 1 3 2 5 10 -3
Die Hilfsmethode helper() nützt das Java-Feature der variablen Parameterliste, die dann in eine Sequenz (Array) umgewandelt wird.
Die zweite Variante verwendet die Initialisierung von Arrays.
Auch mit beliebigen Objekten ist das Prinzip machbar:
for o in [1, "a", 23.3, "hallo", 3]:
print(o, end=" ")
print()
public class ListsInForLoop {
// helper
public static Object[] olist(Object... objects) {
return objects;
}
public static void main(String[] args) {
// different kinds of Objects
for (Object o : olist(1, "a", 23.3, "hallo", 3)) {
System.out.print(o);
System.out.print(" ");
}
System.out.println();
// use locally defined Object array
for (Object o : new Object[] { 1, "a", 23.3, "hallo", 3 }) {
System.out.print(o);
System.out.print(" ");
}
System.out.println();
}
}
Die Ausgabe ist dann so:
1 a 23.3 hallo 3 1 a 23.3 hallo 3
Labels: Java
Abonnieren Kommentare [Atom]
Kommentar veröffentlichen