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
Pubblicato in Guide, Guide, Java, Programmazione Taggato con: , ,