Gli array

Un array è una collezione di tipi di dati primitivi, odi reference, o di altri array. Gli array permettono diutilizzare un solo nome per individuare una collezionecostituita da vari elementi che saranno accessibili tramitedegli indici interi. In Java gli array sono, in quantocollezioni, oggetti.

Per creare ed utilizzare un array, bisogna passareattraverso tre fasi: dichiarazione, istanza edinizializzazione.

- Dichiarazione:

Di seguito presentiamo due dichiarazioni di array. Nellaprima dichiariamo un array di char (tipo primitivo), nellaseconda dichiariamo un array di istanze di Button (classeappartenente al package java.awt):

char alfabeto []; oppure char [] alfabeto;Button bottoni []; oppure Button [] bottoni;


In pratica, per dichiarare un array, basta posporre (oppureanteporre) una coppia di parentesi quadreall’identificatore.

- Istanza:

Un array è un oggetto (speciale) in Java e, in quantotale, va istanziato in modo particolare. La sintassi èla seguente:

alfabeto = new char[21];bottoni = new Button[3];


Come il lettore può notare, è obbligatoriospecificare al momento dell’istanza dell’array,la dimensione dell’array stesso. A questo puntoperò tutti gli elementi dei due array sonoinizializzati automaticamente ai relativi valori nulli.Vediamo allora come inizializzare esplicitamente gli elementidell’array.

- Inizializzazione:

Per inizializzare un array, bisogna inizializzare ognielemento singolarmente:

alfabeto [0] = ‘a’;alfabeto [1] = ‘b’;alfabeto [2] = ‘c’;alfabeto [3] = ‘d’;. . . . . . . . . .alfabeto [20] = ‘z’;bottoni [0] = new Button();bottoni [1] = new Button();bottoni [2] = new Button();


L’indice di un array, inizia sempre da zero. Quindi unarray dichiarato di 21 posti, avrà come indice minimo0, e massimo 20.

Il lettoreavrà sicuramente notato che è molto scomodoinizializzare un array in questo modo, per di più dopoaverlo prima dichiarato ed istanziato. Ma Java ci vieneincontro dandoci la possibilità di eseguire tutti etre i passi principali per creare un array, tramite unaparticolare sintassi che di seguito presentiamo:

char alfabeto [] = { ‘a’,‘b’,‘c’,‘d’,‘e’,…,‘z’} ;Button bottoni [] = { new Button(), new Button(), newButton()} ;


Un array non è ridimensionabile, e se dichiarato diun certo tipo di dato, non potrà immagazzinareelementi di altri tipi (tranne nei casi in cui si applica ilpolimorfismo…). Esiste anche una variabile chiamatalength che applicata ad un array, restituisce la dimensioneeffettiva dell’array stesso. Quindi

alfabeto.length

varrà 21.

Esistono anche array multidimensionali, che sono array diarray. A differenza della maggior parte degli altri linguaggidi programmazione, in Java quindi, un array bidimensionalenon deve per forza essere rettangolare. Di seguito èpresentato un esempio:

int arrayNonRettangolare [][]=new int[4][];arrayNonRettangolare [0]=new int[2];arrayNonRettangolare [1]=new int[4];arrayNonRettangolare [2]=new int[6];arrayNonRettangolare [3]=new int[8];arrayNonRettangolare [0][0]=1;arrayNonRettangolare [0][1]=2;arrayNonRettangolare [1][0]=1;. . . . . . . . . . . . . . . .arrayNonRettangolare [3][8]=10;



oppure, equivalentemente:

int arrayNonRettangolare [][]={{1,2}{1,0,0,0}{0,0,0,0,0,0}{0,0,0,0,0,0,0,10}} ;


N.B.: Il lettore è rimandato al prossimo modulo perla conoscenza dei cicli. Essi ci permetteranno in alcuni casidi inizializzare gli array in maniera molto comoda.