Introduzione agli Array in Java

Concetti Chiave
  • Gli array in Java sono strutture dati che memorizzano collezioni di elementi dello stesso tipo, con accesso diretto tramite indici.
  • La dichiarazione di un array richiede la specifica del tipo e l'uso dell'operatore new per allocare memoria.
  • Gli array hanno una dimensione fissa, che non può essere modificata dopo la creazione.
  • È possibile inizializzare un array con valori specifici al momento della creazione, utilizzando la sintassi {}.

Array

Un array è una struttura dati che consente di memorizzare una collezione di elementi dello stesso tipo. Gli array sono utili quando si desidera gestire un insieme di dati correlati in modo efficiente, permettendo l'accesso diretto agli elementi tramite un indice.

Gli array in Java sono oggetti che possono contenere più valori dello stesso tipo, e sono particolarmente utili per gestire collezioni di dati come liste, matrici o tabelle.

Gli array sono caratterizzati da:

  • Dimensione fissa: Una volta creato, un array ha una dimensione che non può essere modificata. La dimensione viene specificata al momento della creazione dell'array.
  • Accesso diretto agli elementi: Gli elementi di un array possono essere accessibili direttamente tramite il loro indice, che parte da 0. Ad esempio, il primo elemento di un array si trova all'indice 0, il secondo all'indice 1, e così via.
  • Tipi di dati omogenei: Tutti gli elementi di un array devono essere dello stesso tipo, che può essere un tipo primitivo (come int, double, char, ecc.) o un tipo di oggetto (come String, ArrayList, ecc.).>

Dichiarazione di Array

Un array è una struttura dati che memorizza una raccolta di valori dello stesso tipo. Ogni valore individuale si accede tramite un indice intero. Per esempio, se a è un array di interi, allora a[i] è l'i-esimo intero nell'array.

Si dichiara una variabile array specificando il tipo dell'array—vale a dire il tipo degli elementi seguito da []—e il nome della variabile array. Per esempio, ecco la dichiarazione di un array a di interi:

int[] a;

Tuttavia, questa istruzione si limita a dichiarare la variabile a. Non inizializza ancora a con un vero array.

Bisogna usare l'operatore new per creare l'array.

int[] a = new int[100];

Possiamo anche usare l'inferenza automatica dei tipi per dichiarare un array:

var a = new int[100];

Queste due istruzioni alternative dichiarano e inizializzano un array di 100 interi.

La lunghezza dell'array non deve essere costante: new int[n] crea un array di lunghezza n.

Una volta creato un array, non è possibile cambiarne la lunghezza (anche se, naturalmente, si può cambiare un singolo elemento). Se si ha spesso la necessità di espandere la lunghezza degli array mentre il programma è in esecuzione, conviene usare le liste di array, che vedremo in seguito.

Definizione

Dichiarare un array in Java

È possibile definire una variabile array sia come

int[] a;

che come

int a[];

La maggior parte dei programmatori Java preferisce il primo stile perché separa nettamente il tipo int[] (array di interi) dal nome della variabile.

Inizializzazione di Array

Un array può essere inizializzato con valori specifici al momento della creazione. Per esempio, per creare un array di interi con i primi sei numeri primi, si può scrivere:

int[] piccoliPrimi = new int[] { 2, 3, 5, 7, 11, 13 };

In questo caso, l'array piccoliPrimi viene inizializzato con i valori specificati tra le parentesi graffe {}. La lunghezza dell'array è determinata automaticamente in base al numero di elementi forniti.

Con questa sintassi non si usa new e non si specifica la lunghezza.

Una virgola dopo l'ultimo valore è consentita, il che può risultare comodo per un array al quale si continuano ad aggiungere valori nel tempo:

String[] poeti = {
    "Dante Alighieri",
    "Petrarca",
    "Giovanni Boccaccio",
    // aggiungere altri nomi qui e mettere una virgola dopo ogni nome
};

È possibile dichiarare un array anonimo:

new int[] { 17, 19, 23, 29, 31, 37 }

Questa espressione alloca un nuovo array e lo riempie con i valori fra le parentesi graffe. Conta il numero di valori iniziali e imposta di conseguenza la dimensione dell'array. Questa sintassi può essere usata per reinizializzare un array senza creare una nuova variabile. Per esempio,

piccoliPrimi = new int[] { 17, 19, 23, 29, 31, 37 };

è una forma abbreviata di

int[] anonimo = { 17, 19, 23, 29, 31, 37 };
piccoliPrimi = anonimo;
Definizione

Array di lunghezza zero

È lecito avere array di lunghezza 0. Un array di questo tipo può essere utile quando si scrive un metodo che produce un risultato array e il risultato risulta vuoto. Un array di lunghezza 0 si costruisce così

new tipoElemento[0]

oppure

new tipoElemento[] {}

Si noti che un array di lunghezza 0 non è la stessa cosa di null.