|
Le variabili
consentono di memorizzare e manipolare dei dati durante l'esecuzione
di un programma, ma hanno delle limitazioni:
Spesso invece ci troviamo a dover manipolare dati in qualche modo omogenei, per esempio un insieme di interi di cui vogliamo trovare il minimo, i voti degli esami di profitto, etc... In questi casi può essere conveniente far riferimento ai dati in modo uniforme.
Un array è una sequenza
di variabili indirizzabili con un indice intero.
Gli array
|
|
Abbiamo detto che 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?
In Java gli array sono oggetti e quindi vanno creati utilizzando l'operatore new.
La sintassi dell'operatore di creazione è però diversa da quella prevista per gli altri oggetti:
per creare un oggetto array dobbiamo utilizzare new seguito dal nome del tipo base e da un'espressione di tipo int racchiusa tra parentesi quadre.
In generale, una dichiarazione di variabile di
tipo array con inizializzazione ha la seguente forma:
dove:
Esempio:
Concettualmente, list è una sequenza di cinque variabili di tipo int, chiamate list[0], list[1], ..., list[4]
|
|
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:
Gli array hanno una variabile di istanza length, il cui valore corrisponde al numero degli elementi contenuti nell'array. Tale informazione si trova in un campo (cioè come vedremo in una variabile interna all'oggetto) di nome length e di tipo int e non è quindi un metodo come nel caso della classe String.
L'operatore new crea l'insieme di variabili che costituiscono l'array e anche la variabile length, e l'assegnamento le collega alla variabile list di tipo array. Nel momento in cui viene creato l'array, tutti
i valori sono inizializzati a
La dimensione di un array è fissata al momento della creazione e non può essere cambiata a meno di creare un nuovo oggetto array (ma vedremo le classi ArrayList e Vector dove invece il cambiamento dinamico della dimensione è possibile). |
|
Per riferire i singoli elementi di un array si usano le parentesi quadre:
Attenzione: Ad esempio, il quarto elemento dell'array list è list[3]; il seguente comando gli assegna il valore 10:
Analogamente, 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 tale
valore mediante il 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 <lista_valori> è una sequenza di elementi, ciascuno di tipo <tipo>, separati da virgole. In questo caso, il valore della variabile di istanza length viene automaticamente inizializzato al numero di elementi che compongono la lista. 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). |
|
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 e C++. Analogamente,
Però questa sintassi alternativa non è molto significativa in Java e si raccomanda di evitarla! |