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}};