5 - Unità didattica 3.5)
- Gli array in Java
Un array è una collezione di tipi di dati
primitivi, o di reference, o di altri array. Gli array permettono di
utilizzare un solo nome per individuare una collezione costituita da
vari elementi che saranno accessibili tramite degli indici interi.
In Java gli array sono, in quanto collezioni, oggetti.
Per creare ed utilizzare un array, bisogna
passare attraverso tre fasi: dichiarazione, istanza ed
inizializzazione.
- Dichiarazione:
Di seguito presentiamo due dichiarazioni di
array. Nella prima dichiariamo un array di
char (tipo
primitivo), nella seconda dichiariamo un array di istanze di
Button (classe
appartenente al package
java.awt):
char
alfabeto [];
oppure char []
alfabeto;
Button
bottoni [];
oppure Button []
bottoni;
In pratica, per dichiarare un array, basta
posporre (oppure anteporre) una coppia di parentesi quadre all’identificatore.
- Istanza:
Un array è un oggetto (speciale) in Java e, in
quanto tale, va istanziato in modo particolare. La sintassi è la
seguente:
alfabeto =
new char[21];
bottoni = new
Button[3];
Come il lettore può notare, è obbligatorio
specificare al momento dell’istanza dell’array, la dimensione dell’array
stesso. A questo punto però tutti gli elementi dei due array sono
inizializzati automaticamente ai relativi valori nulli. Vediamo
allora come inizializzare esplicitamente gli elementi dell’array.
- Inizializzazione:
Per inizializzare un array, bisogna
inizializzare ogni elemento 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 un array dichiarato di 21 posti, avrà come indice minimo
0, e massimo
20.
Il lettore avrà sicuramente notato che è molto
scomodo inizializzare un array in questo modo, per di più dopo
averlo prima dichiarato ed istanziato. Ma Java ci viene incontro
dandoci la possibilità di eseguire tutti e tre i passi principali
per creare un array, tramite una particolare sintassi che di seguito
presentiamo:
char
alfabeto [] = { ‘a’,‘b’,‘c’,‘d’,‘e’,…,‘z’}
;
Button
bottoni [] = { new Button(),
new Button(), new
Button()}
;
Un array non è ridimensionabile, e se
dichiarato di un certo tipo di dato, non potrà immagazzinare
elementi di altri tipi (tranne nei casi in cui si applica il
polimorfismo…). Esiste anche una variabile chiamata
length che applicata
ad un array, restituisce la dimensione effettiva dell’array stesso.
Quindi
alfabeto.length
varrà 21.
Esistono anche array multidimensionali, che
sono array di array. A differenza della maggior parte degli altri
linguaggi di programmazione, in Java quindi, un array bidimensionale
non 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
per la conoscenza dei cicli. Essi ci permetteranno in alcuni casi di
inizializzare gli array in maniera molto comoda.
Obbiettivi e Unità Didattica 3.1) - Pagina 1
Unità didattica 3.2) - Pagina 2
Unità didattica 3.3) - Pagina 3
Unità didattica 3.4) - Pagina 4
Unità didattica 3.5) - Pagina 5
Unità didattica 3.6) - Pagina 6