2-Dimensionaler Array verstehen in Java?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
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.