12. Array
Array
Dato un tipo T, standard o definito dall’utente, l’array di T è definito come T[]
.
Gli array multidimensionali si dichiarano in maniera simile, T[][]
.
Dichiarazione ed inizializzazione degli array
Dichiarazione:
int[] ai1, ai2;
float[] af1;
double ad[];
Person[][] ap;
Inizializzazione:
int[] ai = {1, 2, 3};
double[][] ad = {{1.2, 2.5}, {1.0, 1.5}};
In assenza di inizializzazione, la dichiarazione di un array non alloca spazio per gli elementi dell’array.
L’allocazione può essere fatta dinamicamente con l’operatore new <type>[<size>]
int[] i = new int[10];
i = {10, 11, 12};
float[][] f = new float[10][10];
Persona[] p = new Persona[30];
Se gli elementi dell’array non sono di tipo primitivo, l’operatore new
alloca SOLO lo spazio per i riferimenti agli oggetti.
Array di oggetti
Person[] person;
person = new Person[20];
person[0] = new Person();
La riga 1 definisce solo la variabile person
, ma non alloca spazio.
La riga 2 allora 20 spazi per riferimenti ad un oggetto di tipo Person
.
La riga 3 crea un oggetto di tipo Person
e assegna il suo riferimento a person[0]
.
Iterazione negli array
int sum(int[] a) {
int result = 0;
for (int n : a) // Si legge "per ogni n in a"
result += n;
return result;
}
Questo codice somma tutti gli elementi dell’array a
.