Array bidimensionali

Un array bidimensionale si può definire e allocare con la sintassi:

tipoElementi[][] nomeMatrice = new tipoElementi[dim1][dim2];

ad esempio:

double[][] p = new double[10][20];

Possiamo immaginare che la prima dimensione indichi il numero di righe e la seconda il numero di colonne. Il valore di p.length sarà la lunghezza della prima dimensione (numero di righe), mentre p[i].length, dove i è un qualsiasi valore lecito per il primo indice, indica la misura della seconda dimensione (numero di colonne)

Nell'esempio riportato sopra, p.length sarà pari a 10, mentre p[0].length sarà pari a 20.

Gli elementi dell'array bidimensionale saranno individuati dalla sintassi
..... p[espr1][espr2] ... in cui espr1 ed espr2 sono due espressioni intere il cui valore, durante l'esecuzione del programma, dovrà necessariamente essere compreso nei rispettivi intervalli di validità, pena il blocco del programma con la nota ArrayIndexOutOfBoundsException.

Quindi, il primo elemento della prima riga sarà p[0][0], e l'ultimo elemento dell'ultima riga sarà p[9][19].

Il seguente frammento di codice alloca un array bidimensionale di double con 4 righe e 7 colonne, e lo inizializza con valori casuali nell'intervallo [0,1).

    double[][] mat = new double[4][7];
    for(int i=0; i<mat.length; i++)
    {
        for(int j=0; j<mat[i].length; j++)
        {
            mat[i][j] = Math.random();
        }
    }

Inizializzazione di un array bidimensionale

Analogamente a quanto visto per gli array monodimensionali, un array bidimensionale può essere inizializzato contestualmente alla sua definizione come segue:

    // in questo esempio l'array mat avrà 3 righe e 4 colonne
    
    int[][] mat = {{5, 3, 6, 12}, {1, 3, 3, 2}, {0, 0, 3, 14}};