2-Dimensionaler Array verstehen in Java?
Liebe Community,
derzeit lerne ich für Programmierung 1 Java und bin eigentlich mit dem Modul inhaltlich auch zu 95% durch. Lediglich as Thema 2D-Arrays macht mir seit dem ich davon gehört habe Kopfschmerzen. So soll ich beispielsweise folgende Aufgabe bearbeiten:
Programmieren Sie eine Klassenmethode namens ausgeben, die einen beliebigen 2- dimensionalen Array (Matrix) vom Datentyp int auf der Konsole mit Hilfe von foreach-Schleifen ausgibt.
Für die Ausgabe wird jede Zeile der Matrix in einer neuen Zeile begonnen. Die Elemente der Matrix sind jeweils durch ein Leerzeichen (blank) getrennt. Der 2-dimensionale Array wird als Parameter namens numbers übergeben. Die Methode soll von anderen Klassen aufrufbar sein.
Und es möchte einfach nicht in meinen Kopf wie ich das angehe. Ich wäre soweit alleine gekommen:
public static void(int numbers[][]){
for...{
for...{
}
}
System.out.println(... + " ");
}
Kann mir jemand helfen das besser zu verstehen oder hat irgendwas um diese for-Schleifen zu visualisieren?
3 Antworten
int[][] numbers = { {1, 2, 3, 4}, {5, 6, 7}, {8, 9, 10} };
numbers[i-tes Array][j-tes Element]
// Wir bleiben im 1. Array: [0][n]
System.out.println(numbers[0][0]); // 1
System.out.println(numbers[0][1]); // 2
System.out.println(numbers[0][2]); // 3
System.out.println(numbers[0][3]); // 4
// 2. Array mit [1][n]
System.out.println(numbers[1][0]); // 5
System.out.println(numbers[1][1]); // 6
// usw.
Die äußere For-Schleife läuft also von int i=0 bis 3*, die innere Schleife läuft von int j=0 bis numbers[i].length-1
*= Oder bis numbers.length-1
Deine Methode benötigt einen Namen/Bezeichner.
Stell Dir vor, Du hast ein Blatt Papier und eine ganz normale Tabelle darauf.
Du kannst die Tabelle einfach zeilenweise lesen, indem Du in der ersten Zeile anfängst (das wäre die äußere for-Schleife) und dann innerhalb der Zeile von links nach rechts jede Zelle liest (innere Schleife).
Wenn Du fertig bist, gehst Du eine Zeile nach unten und liest wieder die Zeile.
Ein zweidimensionales Array kannst Du Dir als Tabelle vorstellen (oder Matrix, wie in dem Text steht).
Ein 2D Array der Größe [3] [3] sieht also so aus:
0 1 2
3 4 5
6 7 8
Drei Spalten und drei Zeilen.
Mit den beiden For Schleifen gehst Du durch die Zeilen und Spalten Deiner Tabelle.
Die erste Schleife geht durch jede Zeile, die zweite Schleife geht durch jede Spalte.
Nehmen wir unser Beispiel, dann fängt die erste Schleife bei der obersten Zeile an und läuft durch jede Zeile.
Im ersten Durchlauf durch die Zeile "0 1 2", im zweiten durch die Zeile "3 4 5" und im dritten durch die Zeile "6 7 8".
Für jede dieser Durchläufe, durchläuft die zweite Schleife jede Spalte der Tabelle.
Also erst die 0, dann die 1, dann die 2 im ersten Durchlauf der ersten Schleife.