Le matrici standard in Java sono fisse nel numero di elementi che possono avere. Se si desidera aumentare o diminuire gli elementi in un array, è necessario creare un nuovo array con il numero corretto di elementi dal contenuto dell'array originale. Un'alternativa è usare il Lista di array
classe. Il Lista di array
class fornisce i mezzi per creare array dinamici (ad esempio, la loro lunghezza può aumentare e diminuire).
import java.util.ArrayList;
Un Lista di array
può essere creato usando il semplice costruttore:
ArrayList dynamicArray = new ArrayList ();
Questo creerà un Lista di array
con una capacità iniziale di dieci elementi. Se un più grande (o più piccolo) Lista di array
è richiesta la capacità iniziale può essere passata al costruttore. Per fare spazio a venti elementi:
ArrayList dynamicArray = new ArrayList (20);
Utilizzare il metodo add per aggiungere un valore a Lista di array
:
dynamicArray.add (10); dynamicArray.add (12); dynamicArray.add (20);
Nota: Il Lista di array
memorizza solo gli oggetti, anche se le righe precedenti sembrano aggiungere valori int a Lista di array
vengono automaticamente cambiati in Numero intero
oggetti man mano che vengono aggiunti a Lista di array
.
Un array standard può essere utilizzato per popolare un Lista di array
convertendolo in una raccolta Elenco utilizzando il metodo Arrays.asList e aggiungendolo a Lista di array
usando il Aggiungi tutto
metodo:
String [] names = "Bob", "George", "Henry", "Declan", "Peter", "Steven"; ArrayList dynamicStringArray = new ArrayList (20); dynamicStringArray.addAll (Arrays.asList (nomi));
Una cosa da notare Lista di array
è che gli elementi non devono essere dello stesso tipo di oggetto. Anche se il dynamicStringArray
è stato popolato da oggetti String, può ancora accettare valori numerici:
dynamicStringArray.add (456);
Per ridurre al minimo la possibilità di errori, è meglio specificare il tipo di oggetti che si desidera Lista di array
contenere. Questo può essere fatto in fase di creazione usando generici:
ArrayList dynamicStringArray = new ArrayList (20);