Come utilizzare un ArrayList Java

Come utilizzare un ArrayList Java / Programmazione

Un Java Lista di array è un array ridimensionabile per uso generico. Fornisce la maggior parte delle strutture generalmente previste per gli array in altre lingue. Questi includono: accesso agli elementi usando un indice, aggiunta, rimozione e aggiornamento di elementi, ridimensionamento dinamico, iterazione degli elementi, ecc. La maggior parte di queste operazioni è stata ottimizzata appositamente per l'uso generico.

Ci sono alcuni altri tipi di “array” (classi che implementano il Elenco interfaccia, per essere tecnici) che sono destinati a scopi speciali. Questi includono:

  • Lista collegata supporta l'inserimento e la rimozione rapidi negli indici intermedi.
  • Vettore è simile a un Lista di array ma è sincronizzato ed è adatto al posto di un Lista di array per applicazioni multi-thread.
  • Pila supporta le operazioni per l'imitazione di un elenco last-in-first-out. Estende il Vettore e quindi è sincronizzato.

Queste classi speciali non rientrano nell'ambito di questo articolo. Tuttavia, imparerai come configurare e utilizzare un ArrayList Java generico.

Creazione di una lista di array

Creare un Lista di array è semplice. Un vuoto Lista di array può essere creato usando il costruttore no-arguments. Qui creiamo un arraylist vuoto per tenere stringhe.

Lista di array alist = new ArrayList(); 

Se ti capita di sapere quanti oggetti conterrà la tua lista di array, puoi specificare la capacità iniziale. Questa capacità iniziale è solo un suggerimento per l'allocazione della memoria - l'arraylist non è limitato a contenere il numero specificato di elementi. Se conosci e specifica la capacità iniziale, tu potrebbe ottenere un leggero miglioramento delle prestazioni.

Lista di array alist = new ArrayList(20); 

Compilazione di una lista di array

Aggiungere articoli alla fine

Il popolamento di un arraylist è abbastanza semplice. Basta usare il Inserisci() metodo per aggiungere un singolo oggetto alla fine dell'arrayista. Ecco un esempio:

Lista di array alist = new ArrayList(); alist.add ( "Apple"); alist.add ( "banana"); alist.add ( "melone"); alist.add ( "arancione"); System.out.println (alist); # stampe [mela, banana, melone, arancia] 

Per trovare quanti oggetti ci sono nell'arrayist, usa il metodo taglia().

System.out.println ("Numero di elementi nell'arrayist:" + alist.size ()); # stampa Numero di elementi nell'arrayist: 4

Aggiunta di articoli a un indice specificato

Vuoi aggiungere un elemento a un indice arbitrario? Specifica l'indice come primo argomento e l'elemento viene aggiunto a quell'indice:

alist.add (3, "uva"); System.out.println (alist); # stampe [mela, banana, melone, uva, arancia] 

Aggiunta di un gruppo di oggetti

È inoltre possibile aggiungere elementi da qualsiasi raccolta nella gerarchia di raccolte Java. Un Lista di array è un tipo specifico chiamato Elenco. Ecco un modo per costruire a Elenco da un gruppo di oggetti (usando Arrays.asList ()) e aggiungilo a Lista di array.

Elenco items = Arrays.asList ("pera", "ciliegia"); alist.addAll (voci); System.out.println (alist); # stampe [mela, banana, melone, uva, arancia, pera, ciliegia] 

Ovviamente, è possibile specificare un indice come primo argomento qui per aggiungere gli articoli a partire da quell'indice.

Accesso agli oggetti

Una volta che gli elementi sono stati aggiunti all'array, come possiamo accedervi di nuovo?

Accedere con un indice

Se conosci l'indice dell'articolo, puoi utilizzare il ottenere() metodo per recuperare l'elemento in quell'indice.

Stringa item = alist.get (2); System.out.println ("L'elemento nell'indice 2 è:" + elemento); # stampe L'oggetto nell'indice 2 è: cantalupo 

Trovando gli oggetti

Cosa succede se non si conosce l'indice dell'articolo? Puoi usare indice di() per verificare se l'elemento è presente nell'array e recuperare l'elemento utilizzando l'indice restituito.

System.out.println (alist); int index = alist.indexOf ("orange"); se (indice < 0 ) System.out.println("Item \"orange\" not found"); else System.out.println("Item \"orange\" found at index " + index); # prints [apple, banana, cantaloupe, grapes, orange, pear, cherry] Item "orange" found at index 4 

Cosa succede se l'oggetto non è presente nell'arrayist? Il indice di() il metodo restituisce -1 quando l'oggetto non viene trovato.

index = alist.indexOf ("grape"); se (indice < 0 ) System.out.println("Item \"grape\" not found"); else System.out.println("Item \"grape\" found at index " + index); # prints Item "grape" not found 

Iterating Over a ArrayList

Naturalmente, l'uso più comune di un Lista di array sta iterando sugli elementi. Questo può essere realizzato in diversi modi. Mostriamo un paio di semplici qui.

Ecco il modo più semplice di iterare su un arraylist e di estrarre gli oggetti per qualche tipo di elaborazione.

for (String fruit: alist) System.out.println ("Found fruit \" "+ fruit +" \ "");  # stampe Trovato frutto "mela" Trovato frutto "banana" Trovato frutto "cantalupo" Trovato frutto "uva" Trovato frutto "arancia" Trovato frutto "pera" Trovato frutto "ciliegia" 

Questo codice utilizza Java Enhanced For-Loop che è stato introdotto in Java 1.5. Prima di ciò, è possibile scorrere gli articoli con un iteratore. Un iteratore viene utilizzato anche quando è necessario rimuovere elementi durante il processo di iterazione come illustrato nell'esempio seguente. (Nota che creiamo una copia dell'arrayylist e lavoriamo sulla copia.)

Lista di array blist = new ArrayList(una lista); for (Iterator iter = blist.iterator (); iter.hasNext ();) String fruit = iter.next (); if (fruit.startsWith ("c")) iter.remove (); else System.out.println ("Keeping \" "+ fruit +" \ "");  # stampe Mantenere "mela" Mantenere "banana" Mantenere "uva" Mantenere "arancio" Mantenere "pera" 

Sostituzione di articoli

Una volta aggiunti gli articoli, abbiamo bisogno di un modo per sostituire gli oggetti indesiderati. Questo può essere fatto usando il impostato() metodo con un indice.

alist.set (5, "ananas"); System.out.println (alist); # stampe [mela, banana, melone, uva, arancia, ananas, ciliegia] 

Rimozione di articoli

Vediamo ora come possiamo rimuovere oggetti da un arraylist. Se conosci l'indice dell'articolo (forse hai usato indice di() descritto sopra), è possibile utilizzare il rimuovere() metodo con l'indice. Restituisce l'elemento rimosso.

String fruit = alist.remove (2); System.out.println ("Elemento rimosso in 2:" + frutto); # prints Removed element at 2: cantaloupe 

Puoi anche specificare l'elemento per rimuovere il primo occorrenza dell'elemento nell'elenco. Il metodo restituisce vero se l'elemento è stato trovato e rimosso.

frutto = "uva"; System.out.println ("Rimuovi" + frutto + "dalla lista?" + Alist.remove (frutto)); # stampe Rimuovere le uve dalla lista? vero 

Come stai usando il Lista di array nei tuoi progetti e quali problemi speciali hai affrontato? Per favore fateci sapere nei commenti qui sotto.

Scopri di più su: Java.