Lezione di Java 16 – Gli array

Indice Lezione PrecedenteLezione Successiva


Gli array in Java sono degli oggetti e possono essere di due tipi: tipo primitivo o tipo reference. Quando si dichiara un array si crea solo una “struttura” oggetto con i riferimenti, c’è bisogno della new per creare gli oggetti (per i tipi primitivi è possibile evitare di farlo, la loro creazione avviene automaticamente). Dichiarare la dimensione di un array durante la sua compilazione è un errore a tempo di compilazione e come in molti linguaggi, un array non è ridimensionabile (ciò non implica che il suo riferimento possa essere riutilizzato). Quando si dichiara un array gli elementi vengono inizializzati al loro valore di default, mentre l’indice iniziale è 0.

char s[]; // Dichiarazione del vettore s di riferimenti a char
s=new char[10]; // Creazione del vettore e automaticamente dei caratteri

Persona[] p; // Dichiarazione del vettore p
p=new Persona[5]; // Creazione del vettore, non degli elementi!
p[1]=new Persona(); // Inizializzazione dell'elemento 1
//...

Come si può nostre la sintassi per gli array è molto simile a quella usata per il C, inoltre un vettore si può dichiarare in due modi: con le parentesi quadre a destra, solo quell’elemento è un vettore; o con le parentesi quadre a sinistra, tutti gli elementi che seguono lo stesso enunciato sono vettori (es. Persona[] p, l, c; sono tutti vettori! int i[], j, k; solo i è un vettore, gli altri sono interi).

Per l’inizializzazione di un array in Java esistono 3 metodi:
Utilizzare un loop e inizializzare di volta in volta un elemento;
Dichiarare, costruire ed inizializzare in un unico enunciato:

String[] persone = {
"Marco",
"Luigi",
"Mariano"
};

Costruire ed inizializzare un array anonimo, la dimensione viene calcolata automaticamente:

int [] numero;
numero = new int [] {1 ,2 ,3};

Multidimensioni

In Java è possibile dichiarare array di vario tipo:

  • Array di array:
    int dueDim [][] = new int [3][];
    dueDim [0] = new int [5];
    dueDim [1] = new int [5];
    dueDim [2] = new int [5];
    int dueDim [][] = new int [][3]; // illegale

  • Array non rettangolare di array:

    int dueDim [][] = new int [3][];
    dueDim [0] = new int [2];
    dueDim [1] = new int [5];
    dueDim [2] = new int [8];
  • Array rettangolare di array:

    int dueDim [][] = new int [4][5];
    n Costruzione e inizializzazione:
    int [][] multiD = {{5 ,4 ,3 ,2} , {9,8}, {7 ,6 ,5}};

Essendo oggetti, gli array hanno vari attirbuti ed oggetti, ad esempio:

  • nome_array.legth è la dimensione delle colonne dell’array;
  • nome_array[0].legth è la dimensione delle righe dell’array;
  • System.arraycopy(); è un metodo che permette di copiare un array in un altro.

Ti piace l’articolo?
Diventa fan su Facebook
Indice Lezione PrecedenteLezione Successiva

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *