Java arrays – un breve tutorial

Un array è un oggetto contenitore che contiene un numero finito di valori di un tipo specifico. Il numero di elementi che l'array può memorizzare è definito al momento della creazione e non può essere modificato in seguito. Dopo la creazione la sua lunghezza è fissa.

  • Dichiarazione di array
  • Creazione e inizializzazione di un array
  • Accesso ai valori dell'array
  • Una breve nota sulla dimensione dell'array

Dichiarazione di array

Dichiarare un array è molto simile a dichiarare una variabile. Dobbiamo specificare un tipo e un identificatore.

int[] numbers;

Questa linea di codice dichiara un array di interi con il nome "numbers". Le parentesi quadre devono essere usate in modo che il compilatore sappia che numbers è un tipo di array. I nomi per gli array devono rispettare le solite convenzioni di denominazione delle variabili Java.

Creare e inizializzare un array

Ora abbiamo bisogno di creare un oggetto array e inizializzare la nostra variabile con esso. Creiamo un array con abbastanza memoria per 10 interi.

numbers = new int[10];

Con l'operatore new, creiamo l'oggetto array e lo assegniamo alla nostra variabile numbers creata prima. Invece di usare due linee separate potete anche usare la sintassi stenografica come questa:

int[] numbers = new int[10];

Se la creazione dell'array è riuscita possiamo accedere ad ogni elemento dell'array usando la sintassi delle parentesi quadre.

numbers[0] = 42; // inizializza il primo elemento
numbers[1] = 84; // inizializza il secondo elemento
// ...
numbers[9] = 21504 // inizializza l'ultimo (10°) elemento

Siccome cominciamo a contare dall'indice zero, il nostro 10° elemento è all'indice 9. Usare il numero 10 all'interno delle parentesi quadre causerà un errore di runtime che può essere catturato tramite la gestione delle eccezioni. In una situazione reale non si accede ad ogni elemento individualmente. Invece, usereste una struttura di loop come for o while.

Accedere ai valori dell'array

Ovviamente, non volete solo memorizzare dati in un array ma anche leggere da esso. Per accedere ai singoli valori dell'array potete usare anche l'operatore di parentesi quadre.

//Stampa del 6° elemento
System.out.println("Elemento all'indice 5: " + numbers[5]);

Per stampare ogni elemento dell'array possiamo usare un ciclo che itera su ogni array.element.

for (int i = 0; i < numbers.length; i++)

{
System.out.println("Elemento all'indice " + i + ": " + numbers[i]);
}

Il valore numbers.length è la quantità di elementi che possono essere memorizzati nell'array numbers.

Una nota veloce sulla dimensione dell'array

Come detto precedentemente, la capacità dell'array è fissa e non c'è modo di cambiarla. Tuttavia, c'è un piccolo trucco per aggirare questo problema. Invece di ridimensionare l'array originale (che non è possibile), creiamo un nuovo array con la nuova dimensione e copiamo i vecchi valori in esso. La classe Java array offre una funzione semplice da usare per questo approccio.

Se vogliamo aumentare la capacità del nostro array di numeri da 10 a 20 possiamo usare il seguente codice:

numbers = Arrays.copyOf(numbers, 20);

Questo creerà un nuovo array con lunghezza 20 per i numeri e copierà i vecchi valori in esso.
Se conosci già il contenuto dell'array al momento della compilazione, puoi anche usare la sintassi stenografica come questa:

int[] moreNumbers = {10, 20, 30, 40, 50, 60};

Come puoi vedere, non c'è bisogno di specificare la lunghezza dell'array quando usi la sintassi stenografica.