ArrayList in Java: un'introduzione per principianti [2022]
Pubblicato: 2022-11-22Un array è una struttura dati diffusa ed essenziale in ogni linguaggio di programmazione con uno svantaggio: la sua dimensione è fissa. Vediamo come ArrayList in Java può aiutare in questo.
Un array può essere di due tipi: un array statico o un array dinamico. Un array non può essere aumentato dinamicamente in linguaggi di programmazione come Java. Al contrario, la dimensione dell'array viene dichiarata durante l'inizializzazione dell'array. Ma, in molti casi, questo può portare a molti problemi. Per risolvere questo problema, in Java vengono utilizzati gli ArrayList. La dimensione dell'array aumenta automaticamente quando un elemento viene inserito in un ArrayList.
In questo articolo imparerai a conoscere gli ArrayList in Java. Capirai la differenza fondamentale tra Array e ArrayList e imparerai anche i diversi tipi di ArrayList e come usarli.
Array contro ArrayList
La differenza principale tra un Array e un ArrayList è che la dimensione di un Array è statica, ma una dimensione di ArrayList può essere dinamica. Poiché un array è fisso, il tempo per iterare sull'array richiede meno tempo rispetto a un array dinamico.
Ci sono anche alcune altre differenze tra loro.
- Un array statico può essere singolo o multidimensionale, ma un ArrayList può essere solo unidimensionale.
- Un array è una struttura dati primitiva disponibile in Java. Ma un ArrayList fa parte di un'API Collection Framework in Java. È costruito sopra gli array.
- Puoi dichiarare matrici con tipi di dati primitivi. I tipi di dati primitivi non possono essere utilizzati in un ArrayList. Se desideri utilizzare un tipo di dati primitivo, dovrai utilizzare la classe wrapper corrispondente del tipo di dati.
Tipi di ArrayList in Java
Gli ArrayList possono essere di qualsiasi tipo. Ma dovrai passare la classe wrapper corrispondente perché non puoi passare tipi di dati primitivi in un ArrayList.
È possibile aggiungere tipi di dati semplici come tipi integer o string passando classi wrapper come Integer
o String
.
Puoi anche passare tipi complessi come ArrayLists di ArrayLists, hashmap, ecc.
Diamo un'occhiata a un esempio di utilizzo di una classe personalizzata all'interno di un ArrayList.
import java.util.ArrayList; class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public void getUser() { System.out.println("Name: " + name + " Age: " + age); } } class Main { public static void main(String[] args) { ArrayList<User> users = new ArrayList<>(); users.add(new User("Subha", 25)); users.add(new User("Dan", 32)); users.forEach(user -> { user.getUser(); }); } } Output: Name: Subha Age: 25 Name: Dan Age: 32
Nell'esempio di codice precedente, viene creato un ArrayList di tipo User
. Imparerai di più sui metodi utilizzati nell'esempio seguente.
Creazione di un ArrayList in Java
Hai già compreso le basi di un ArrayList in Java. Ora diamo un'occhiata alla sintassi di un ArrayList e, successivamente, vedremo anche come può essere utilizzato nel codice Java.
ArrayList<Type> listName = new ArrayList<>();
Il frammento precedente mostra la sintassi per la definizione di un ArrayList. Il Type
definisce il tipo di ArrayList. Ad esempio, se si desidera dichiarare un ArrayList di tipi di dati interi, è possibile passare <Integer>
. Si noti che non è possibile passare int
in quanto è un tipo di dati primitivo.
Dovrai anche importare java.util.ArrayList
per usare ArrayList nei tuoi programmi. Ecco un esempio di base di un programma che dichiara un ArrayList:
import java.util.ArrayList; class Main { public static void main(String[] args) { // Declare An ArrayList ArrayList<String> rainbow = new ArrayList<>(); System.out.println(rainbow); } } Output: []
Nel codice precedente, viene dichiarato un ArrayList denominato rainbow
di tipo String
.
Per lavorare con ArrayList, sono disponibili diversi metodi. Diamo un'occhiata ad alcuni metodi.
Il metodo add
La classe ArrayList fornisce vari metodi per eseguire operazioni come aggiungere o rimuovere elementi, ottenere valori, impostare un valore in una posizione specifica, cancellare un ArrayList, ecc.
Il primo metodo che vedremo è il metodo add
.
Il metodo add
viene utilizzato per aggiungere un singolo elemento a un ArrayList
. La sintassi per add
è mostrata di seguito.
arrayList.add(int i, Element)
Comprendiamo ora la sintassi. Il primo parametro i
è un parametro facoltativo che rappresenta la posizione dell'indice in cui si trova l'elemento che si desidera aggiungere. Il secondo parametro Element
è l'elemento che vuoi aggiungere. Diamo ora un'occhiata a un esempio.
rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet]
Il rainbow.add("Violet")
aggiunge un elemento alla fine di un ArrayList. E rainbow.add(0, "Red")
aggiunge l'elemento Red
alla posizione di indice 0
di ArrayList. Il metodo add()
restituisce true
quando un elemento viene inserito correttamente.

Il metodo get
Il metodo get
viene utilizzato per ottenere il valore da una posizione specificata da un ArrayList.
arrayList.get(int i);
La i
mostrata nella sintassi precedente è la posizione dell'indice. Ad esempio, se desideri ottenere l'elemento dalla posizione di indice 1
, scrivi arrayList.get(1)
.
rainbow.add("Violet"); rainbow.add(0, "Red"); String color = rainbow.get(1); System.out.println(color); Output: Violet
Il codice precedente restituirà Violet
dall'ArrayList rainbow
.
Il metodo set
Il metodo set
viene utilizzato per sostituire il valore di un elemento. Ad esempio, se desideri sostituire il valore di un elemento nella posizione di indice 0
, scrivi rainbow.set(0, "Purple")
, assumendo che tu abbia un ArrayList chiamato rainbow
.
La sintassi per il metodo set
è la seguente,
arrayList.set(int i, Element);
Dove i
è la posizione dell'indice ed Element
è il valore del nuovo elemento.
rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet] rainbow.set(1, "Purple"); System.out.println(rainbow); Output: [Red, Purple]
Nell'esempio sopra, aggiungiamo due valori a un ArrayList chiamato rainbow
. Innanzitutto, viene aggiunto l'elemento Violet
, quindi alla posizione 0
dell'ArrayList, aggiungiamo l'elemento Red
. A questo punto, l'ArrayList completo avrà questo aspetto, [Red, Violet]
.
Ora, l'elemento nella posizione di indice 1
viene sostituito con il valore Purple
utilizzando il metodo set
. Dopo aver sostituito il valore, ArrayList avrà questo aspetto, [Red, Purple]
.
Il metodo di remove
Il metodo ArrayList remove
viene utilizzato per rimuovere un valore da ArrayList. Puoi passare il valore o la posizione di indice del valore che desideri rimuovere. La sintassi per il metodo remove
è mostrata di seguito:
arrayList.remove(Object value); // or arrayList.remove(int i);
Facciamo un esempio per una migliore comprensione del metodo. Supponiamo di avere un ArrayList chiamato rainbow
con questi valori [Violet, Red, Green]
. Ora, se vuoi rimuovere Red
da ArrayList, puoi scrivere rainbow.remove("Red");
. Chiamare questo metodo rainbow
ArrayList rimuoverà l'elemento Red
da esso.
// rainbow = [Violet, Red, Green] rainbow.remove("Red"); System.out.println(rainbow); Output: [Violet, Green]
Puoi anche passare la posizione dell'indice per rimuovere l'elemento nella posizione dell'indice.
//rainbow = [Red, Green] rainbow.remove(0); // Remove item at index position 0 System.out.println(rainbow); Output: [Green]
Il metodo clear
Come suggerisce il nome, il metodo clear
rimuove tutti gli elementi da un ArrayList. La sintassi è semplice e non richiede alcun parametro.
arraylist.clear()
Diamo un'occhiata a un esempio,
rainbow.clear(); System.out.println(rainbow); Output: []
Il metodo clear
non restituisce alcun valore. Invece, cancella il valore del dato ArrayList.
Il metodo size
Il metodo size
restituisce la dimensione dell'ArrayList specificato. Anche questo metodo non accetta alcun parametro. La sintassi è mostrata di seguito.
arrayList.size();
L' arrayList
è il nome dell'ArrayList qui. Comprendiamo il metodo delle size
con l'aiuto di un esempio.
ArrayList<String> rainbow = new ArrayList<>(); rainbow.add("Violet"); rainbow.add("Red"); rainbow.add("Green"); System.out.println(rainbow.size()); Output: 3
Questo metodo restituisce il valore della dimensione ArrayList. Nell'esempio precedente, l' rainbow
ArrayList è costituito da tre valori, quindi il metodo size
restituisce 3.
Conclusione
Questo articolo ha discusso cos'è un ArrayList e come differisce da un Array. Abbiamo anche visto come un ArrayList potrebbe essere dichiarato e utilizzato utilizzando vari metodi disponibili per la classe ArrayList.
Se vuoi approfondire l'apprendimento di Java, dai un'occhiata a questi corsi Java online.