Wie funktionieren mehrdimensionale Arrays in Java?

Bei einem zweidimensionalen Array sind die Arrayelemente der ersten Dimension eindimensionale Arrays.
Bei einem dreidimensionalen Array sind die Arrayelemente der ersten Dimension zweidimensionale Arrays. Die Arrayelemente der zweiten Dimension sind eindimensionale Arrays …

Zweidimensionales Array

Das Array a in der Abbildung ist zweidimensional. a[0] ist eine Referenz auf ein eindimensionales Array mit dem Inhalt [ 4, 5, 6 ].

Im folgenden Code wird gezeigt, wie Arrays deklariert und initialisiert werden.

public class ArrayDemo {

    static void printArray(int a[][]) {
        for (int i = 0; i < a.length; i++) {
            int row[] = a[i];
            for (int j = 0; j < row.length; j++) {
                System.out.printf("%5d ", row[j]);
            }
            System.out.println();
        }
        System.out.println();
    }

    public static void main(String[] args) {
        int a[][] = new int[3][4];
        printArray(a);
        
        int b[][] = new int[3][];
        b[0] = new int[2];
        b[1] = new int[3];
        b[2] = new int[4];
        printArray(b);
        
        int c[][] = { { 1, 2 }, { 3, 4 }, { 5, 6 } };
        printArray(c);
    }
}

// Ausgabe:
//    0     0     0     0 
//    0     0     0     0 
//    0     0     0     0 
//    
//    0     0 
//    0     0     0 
//    0     0     0     0 
//    
//    1     2 
//    3     4 
//    5     6 

In Zeile 15 wird ein int-Array mit 3 Zeilen und 4 Spalten angelegt.
In Zeile 18 wird das int-Array b mit 3 Zeilen angelegt. Die Arrays der zweiten Dimension sind noch nicht definiert.
In Zeile 19 – 21 werden die einzelnen Zeilen von b mit Arrays unterschiedlicher Länge belegt. Damit soll gezeigt werden, dass ein mehrdimensionales Array nicht rechteckig sein muss.
In Zeile 24 wird ein int-Array durch Aufzählen der Elemente deklariert und initialisiert.

Mehr dazu findest du im Artikel “Kann ein Array auch mehr als 3 Dimensionen haben?” in unserer FAQ.