int[][] ungerade = { { 1, 9, 4 }, { 0, 2}, { 0, 1, 2, 3, 4 } };
Ein zweidimensionales Array wird als ein Array von eindimensionalen Arrays implementiert. Das ist nicht so schwierig wie Sie vielleicht denken könnten. Es ist nur eine Erweiterung von dem, was Sie bereits über eindimensionale Arrays von Objekten wissen. Die Deklaration
int[][] arr; // 1.
deklariert eine Variable arr
,
die in der Zukunft auf ein Arrayobjekt verweisen kann.
An dieser Stelle wurde nichts über die Anzahl der
Zeilen oder Spalten ausgesagt.
Um ein Array von Zeilen zu erzeugen tun Sie dies:
arr = new int[3][] ; // 2.
Jetzt verweist arr
auf ein Arrayobjekt.
Das Arrayobjekt hat 3 Slots.
Jeder Slot kann (in der Zukunft) auf ein
Array von int
verweisen,
ein int[]
-Objekt.
Aber noch keiner der Slots verweist auf ein Objekt.
Sie werden mit null
initialisiert.
Eine Möglichkeit die Zeile 0 zu erzeugen ist:
arr[0] = new int[3] ; // 3.
Das erzeugt ein 1D-Arrayobjekt und stellt
dessen Referenz in den Slot 0 von arr
.
Die Elemente des 1D-Arrays werden mit 0 initialisiert.
Ein vorher erzeugtes 1D-Array kann einer Zeile zugewiesen werden:
int[] x = {0, 2}; int[] y = {0, 1, 2, 3, 4} ; arr[1] = x ; arr[2] = y ; // 4.
Die Zeilen müssen nicht die gleiche Anzahl an Elementen haben.
Die vorausgehenden Anweisungen haben Schritt für Schritt das 2D-Array erzeugt. Normalerweise würden Sie das nicht tun.