|
Un array di lunghezza n
è una collezione di n variabili dello stesso tipo, distinguibili
l'una dall'altra per mezzo di un indice, cioè di un numero
intero progressivo che può assumere valori tra 0 e n-1.
Come si crea un array? Esempio:
Dichiara list come variabile di tipo "array di int" e gli assegna un nuovo array di 5 elementi. In generale, una dichiarazione di variabile di tipo array
con inizializzazione ha la seguente forma:
dove
|
|
Gli array sono realizzati in Java come oggetti
di una classe opportuna (che viene dichiarata dinamicamente): questo si
vede anche dall'uso della primitiva new per la creazione.
Una dichiarazione di array consiste di due fasi: creazione
del riferimento e allocazione dello spazio necessario a memorizzare gli
elementi.
Nel momento in cui viene creato l'array, tutti i valori
sono inizializzati a 0 (per un array di numeri, come int[]
o double[]), false (per un array boolean[])
o null (per un array di oggetti).
|
|
Per riferirsi ai singoli elementi di un array si usano le parentesi quadre:
Attenzione:
Ad esempio, per inserire il valore 10 nel quarto elemento dell'array list, cioè in list[3], si deve usare il comando:
Per leggere il valore dell'elemento di indice 3 dell'array
list,
basta usare l'espressione list[3] come per qualsiasi variabile
di tipo int; ad esempio si può stampare il valore
contenuto in list[3] con il seguente comando:
|
|
Le singole variabili di un array possono essere
inizializzate in fase di dichiarazione (in modo analogo alle variabili
di tipi primitivi). In questo caso la dichiarazione di array ha la seguente
forma:
dove <valori> è una sequenza di elementi di tipo <tipo> separati da virgole. Gli array hanno una variabile di istanza length, che contiene il numero degli elementi contenuti. Esempio:
Si noti che length non è seguita da parentesi: si tratta infatti di una variabile istanza dell'oggetto array, non di un metodo (come nel caso delle stringhe). |
|
main (String[] args) dove args è un array di argomenti
di lunghezzaargs.length.
|
|
|
Le variabili array funzionano esattamente come
le variabili oggetto: contengono un riferimento all'array in questione.
Se si copia il riferimento, si ottiene un altro riferimento allo stesso
array, e NON una copia dell'intero array.
Volendo fare una copia esatta di un array, bisogna creare un nuovo array della stessa lunghezza di quello originale e copiare tutti i valori usando un ciclo. Esempio: a seguente istruzione stampa tutti gli elementi dell'array
args:
|
|
Come abbiamo visto, in Java una dichiarazione
di variabile di tipo array ha la forma
Infatti, come sempre, in una dichiarazione di variabile
il tipo precede il nome della variabile stessa. Tuttavia, per motivi storici,
questa dichiarazione può anche essere scritta
che è la sintassi usata nei linguaggi C and C++,
anche se questa non è molto significativa in Java (e dovrebbe essere
evitata!). Analogamente,
|