CodeGym /Java Blog /Random-IT /Conversione di Array in ArrayList in Java
John Squirrels
Livello 41
San Francisco

Conversione di Array in ArrayList in Java

Pubblicato nel gruppo Random-IT
CIAO! Nella lezione di oggi parleremo di come inizializzare un array in Java e di come convertire un array in un elenco di array. Gli array sono un'estensione della classe Container in Java e possono essere utili come un modo per contenere temporaneamente un insieme di tipi di dati primitivi quando la quantità di dati è nota in modo specifico. Ma gli array sono statici quando vengono creati, il che significa che quando ne crei uno, non puoi modificare il numero di elementi che contiene. Dovresti ricordare come inizializzare un array in java; sembra così:

datatype[] isArray;
Dove datatype è qualsiasi tipo di dati primitivo come int, float, long o anche String. Puoi anche posizionare le parentesi dopo la dichiarazione in questo modo:

datatype isArray[];
Quindi, come prendiamo questo array statico con un determinato numero di elementi e lo convertiamo in un ArrayList? Bene, per prima cosa, diamo un'occhiata a cos'è un ArrayList.

L'ArrayList

Un ArrayList può avere un nome simile a un Array ma viene gestito in modo completamente diverso. Questo perché un ArrayList non estende la classe Container, estende la classe List. E questo significa che tutto viene gestito in modo diverso. Per prima cosa, poiché è una lista, puoi manipolarla in modo diverso. Puoi aumentare o diminuire la dimensione di ArrayList usando add(element) , che posiziona l'elemento alla fine di List e aumenta la dimensione di uno se necessario. Oppure puoi usare trimToSize()che rimuove tutti gli indici vuoti alla fine e taglia l'ArrayList alla sua dimensione attuale. Quindi puoi vedere che ci sono alcuni vantaggi nell'usare un ArrayList invece di un semplice array. Successivamente ti mostreremo due metodi per convertire da un Array a un ArrayList e come tornare indietro se necessario.

Passaggio da Array a ArrayList e da ArrayList a Array in Java

Quindi, supponiamo che tu abbia scritto un programma per tenere un inventario di quanti dadi e bulloni la tua azienda ha a disposizione per riparare gli alberi dei gatti. Per anni, ne hai avuto bisogno solo di 30 tipi diversi, quindi è stato facile utilizzare solo un array per tenerne traccia. Ma ora hai un nuovo cliente che ti richiede di immagazzinare altri 5 tipi. Come puoi cambiare il tuo programma e conservare tutti i tuoi dati E impedire a te stesso di doverlo fare di nuovo quando prendi un altro cliente? Giusto! Un elenco di array! Quindi, come si converte un array Java in un ArrayList? Ci sono tre metodi. Usando il metodo .asList() Gli array Java hanno un ottimo strumento che puoi vedere quando guardi l'API chiamata .asList() . Quindi potresti semplicemente scrivere in questo:

boltInventory.asList(bolts);
Il problema con questo metodo è che non crea un vero ArrayList. Ciò che fa è creare un elenco di dimensioni fisse e immutabile. Quindi non puoi ancora cambiare le dimensioni in modo dinamico. Il tentativo di aggiungere o rimuovere elementi causerà un'eccezione. Quindi, anche se questo ha i suoi usi, non è una vera conversione. Ma possiamo usare questo. Utilizzo di .asList() come argomento Questo è il secondo modo per convertire un array in un elenco in Java. Poiché il metodo .asList() crea un elenco, possiamo utilizzarlo per passare un riferimento al nostro ArrayList effettivo. Ecco come inizializzare un ArrayList:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
Questo creerà un ArrayList che ha dieci celle vuote. Tuttavia, la () alla fine può essere utilizzata per passare un argomento per riempire l'ArrayList. Quindi combinando con il metodo .asList , hai:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
Questo passa l'elenco creato dal metodo .asList() nell'ArrayList, quindi ora puoi manipolarlo dinamicamente come ti serve. Utilizzo del metodo Collections.addAll() Un altro modo per convertire un Array in un ArrayList in Java consiste nell'utilizzare questo metodo. Passa il contenuto di Array a ArrayList. La sintassi generica per questo metodo è:

Collections.addAll(c, T);
Dove c è la destinazione e T è ciò che viene superato. Quindi, per il nostro esempio, la sintassi sarebbe simile a questa:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
Questo passerà l'intero contenuto dei bulloni dell'array al nuovo ArrayList. Conversione di un ArrayList in un array Potrebbe esserci un momento in cui è necessario convertire un ArrayList in un array in Java. Se lo fai, ArrayList ha un metodo .toArray(a) , dove a è la destinazione. Quindi, per il nostro esempio, la sintassi sarebbe:

Integer boltsInventoryArray[] = new Integer{boltsInventory.size()];
// this ensures the newly created array is of the same size as the ArrayList
boltsInventoryArray = boltsInventory.toArray(boltsInventoryArray);
Quando modifichi un elenco in un array in Java in questo modo, stai creando una copia profonda. In altre parole, tutti i riferimenti all'Array sono diversi dai riferimenti all'ArrayList. Quindi puoi manipolare i dati nell'Array senza modificare i dati memorizzati nell'ArrayList. È utile convertire un elenco java in un array quando è necessario testare i dati.

Conclusione

Gli array sono molto utili per l'accesso rapido e la manipolazione rapida di set di dati più piccoli, ma l'impossibilità di modificarne le dimensioni significa che perdono rapidamente efficienza per l'uso a lungo termine. Un ArrayList ti offre quella flessibilità e la possibilità di inserire e rimuovere i nodi secondo necessità. Imparare a convertire un array Java in un elenco migliorerà l'efficienza complessiva dei tuoi programmi e migliorerà anche i loro tempi di esecuzione.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION