Know How
Arrays in Java
Arrays sind dazu geeignet mehrere -normalerweise gleichartige- Dinge zu verwalten. Dabei muss die Zahl der Elemente im Array bei der Erzeugung des Arrays feststehen. Ein Array wird in Java folgendermaßen benutzt:
Typ[] variablenname; // Definition des Arrays
variablenname = new Typ[anzahl]; // Erzeugung des Arrays
// Zugriff auf das erste Element, Nummerierung ab 0!!!
variablenname[0]
// Zahl der Elemente, KEINE Methode, also keine Klammern am Ende!
variablenname.length
Also z.B. für ein Array von ganzen Zahlen:
int[] zahlen = new int[10];
zahlen[0] = 42;
zahlen[zahlen.length - 1] = 99; // Letztes Element!!!
// Alle Zahlen ausgeben
for(int i = 0; i < zahlen.length; i++) {
System.out.println(zahlen[i]);
}
oder für ein Array von Hunden:
Hund[] hunde = new Hund[5];
// Erzeuge die Hunde
for(int i = 0; i < hunde.length; i++) {
hunde[i] = new Hund();
}
// lasse alle Hund bellen
for(int i = 0; i < hunde.length; i++) {
hunde[i].bellen();
}
Wie Du siehst weicht die Syntax bei Arrays etwas von der Syntax ab, wie man sie in Java gewohnt ist (z.B. Erzeugung eines Array-Objekts). Da Arrays in praktisch allen Sprachen verfügbar sind, hat man sich hier an den üblichen Konventionen orientiert.
for-each Schleife
Alternativ zur obigen for-Schleife, kann man auch eine sogenannte for-each Schleife benutzen, um alle Objekte einer Objektsammlung zu durchlaufen:
for(int z: zahlen) {
System.out.println(z);
}
// beziehungsweise für Hund
for(Hund h: hunde) {
h.bellen();
}
Die for-each Schleife besitzt den Vorteil, dass sie deutlich kompakter und besser lesbar ist. Sie besitzt aber den Nachteil, dass man nicht so flexibel ist. Man kann mit einer for-each Schleife bspw. nicht jedes zweite Element eines Arrays verarbeiten oder das Array in umgekehrter Reihenfolge verarbeiten. Auch steht der Index des aktuellen Elements während der for-each Schleife nicht zur Verfügung.