|
Un array multidimensionale è
un array i cui elementi sono a loro volta array.
Il caso più semplice è quello in cui gli elementi sono array monodimensionali. In questo caso si ottengono delle strutture chiamate matrici, di dimensione 2. Le matrici sono l'unico caso di array multidimensionale che analizziamo. La dichiarazione di un array multidimensionale è del tutto analoga a quella di un array monodimensionale, con la differenza che bisogna riportare tante coppie di parentesi quadre quante sono le dimensioni dell'array.
dichiara una matrice di interi di dimensioni 4x5 (quattro righe e cinque colonne). |
|
Si può accedere ad un singolo elemento
di un array bidimensionale usando doppi indici (per righe e
colonne). Ad esempio matrix[3][1]
seleziona il secondo elemento della quarta riga.
Usando un solo indice si seleziona una riga della matrice.
Ad esempio, matrix[3] seleziona la quarta riga di
matrix
ed è perciò un array di interi di lunghezza
matrix[3].length
(cioè 5).
|
|
Un array multidimensionale viene memorizzato come
un array di array.
Quando si crea un array multidimensionale con new, si può lasciare non specificata una dimensione (insieme alle dimensioni che seguono): in questo caso gli elementi corrispondenti alle dimensioni non specificate sono riferimenti vuoti (null).
Il primo esempio dichiara una matrice a di 3 elementi, ciascuno dei quali è un
riferimento ad un array monodimensionale di lunghezza non specificata.
Sarà quindi necessario inizializzare ogni elemento usando l'operatore
new.
|
|
Analogamente agli array monodimensionali, anche
gli array multidimensionali possono essere inizializzati in fase di dichiarazione.
Spesso è conveniente usare dei cicli annidati per inizializzare / accedere gli elementi di un array multidimensionale. Come esempio vediamo la versione "parametrica" del programma precedente:
|
|
L'uso di cicli annidati consente di scrivere in maniera naturale gli algoritmi che operano su matrici (o più in generale, che operano su array multidimensionali). Ad esempio, vediamo come scrivere un programma che calcola la somma di tutti gli elementi di una matrice e stampa il risultato:
Per convenienza, riportiamo sotto la matrice sulla quale opera l'algoritmo dell'esempio.
|
|