Per poter rappresentare strutture dati a due o più dimensioni, Java supporta gli array multidimensionali o array di array. Per dichiarare un array multidimensionale la sintassi è simile a quella per gli array, con la differenza che è necessario specificare ogni dimensione, utilizzando una coppia di parentesi “[]”. Un array a due dimensioni può essere dichiarato nel seguente modo:
tipo[][] identificatore;
in cui “tipo” ed “identificatore” rappresentano rispettivamente il tipo base dell’array ed il nome che ci consentirà di accedere ai dati in esso contenuti.
Nella realtà, Java organizza gli array multidimensionali come “array di array”; per questo motivo, non è necessario specificarne la lunghezza per ogni dimensione dichiarata, al momento della creazione: in altre parole, un array multidimensionale non deve essere necessariamente creato utilizzando una singola operazione “new”.
Nel prossimo esempio, rappresentiamo una tavola per il gioco della dama utilizzando un array a due dimensioni il cui tipo base è l’oggetto Pedina.
L’inizializzazione dell’oggetto viene effettuata riga per riga, un valore null nella posizione [i][j] identifica una casella vuota (Figura).
Pedina[][] dama = new Pedina[8][];
Pedina[] riga0 = {
new Pedina(“bianca”),null, new Pedina(“bianca”),null,
new Pedina(“bianca”),null, new Pedina(“bianca”),null
};
Pedina[] riga1 = {
null, new Pedina(“bianca”), null, new Pedina(“bianca”),
null, new Pedina(“bianca”), null, new Pedina(“bianca”)
};
Pedina[] riga2 = {
new Pedina(“bianca”),null, new Pedina(“bianca”),null,
new Pedina(“bianca”),null, new Pedina(“bianca”),null
};
Pedina[] riga3 = { null, null, null, null, null, null, null, null };
Pedina[] riga4 = { null, null, null, null, null, null, null, null };
Pedina[] riga5 = {
null, new Pedina(“nera”), null, new Pedina(“nera”),
null, new Pedina(“nera”), null, new Pedina(“nera”)
};
Pedina[] riga6 = {
new Pedina(“nera”),null, new Pedina(“nera”),null,
new Pedina(“nera”),null, new Pedina(“nera”),null
};
Pedina[] riga7 = {
null, new Pedina(“nera”), null, new Pedina(“nera”),
null, new Pedina(“nera”), null, new Pedina(“nera”)
};
dama[0] = riga0;
dama[1] = riga1;
dama[2] = riga2;
dama[3] = riga3;
dama[4] = riga4;
dama[5] = riga5;
dama[6] = riga6;
dama[7] = riga7;
Fonte: Java Mattone dopo Mattone