Ecco un spiegone introduttivo sulle liste ArrayList
in Java, con un esempio pratico semplice per capire subito come funziona. Quando programmi in Java, spesso hai bisogno di una struttura dati che ti permetta di conservare e gestire una raccolta di elementi dinamica: una lista che può crescere o ridursi mentre il programma gira. Qui entra in gioco l’ArrayList
.
Cos’è un ArrayList?
- È una collezione che memorizza elementi in ordine
- È basata su un array interno che si ridimensiona automaticamente quando serve
- Permette di aggiungere, rimuovere, modificare elementi facilmente
- È parte del package
java.util
- È tipo generico, quindi puoi usarla per qualsiasi tipo di dato (
ArrayList<String>
,ArrayList<Integer>
, o classi personalizzate)
Perché usare ArrayList invece di un array normale?
- Gli array in Java hanno dimensione fissa: non puoi aggiungere elementi oltre la capacità iniziale
- Con ArrayList, la dimensione cresce in automatico
- Offre molti metodi utili per manipolare la lista:
add()
,remove()
,get()
,set()
,size()
, ecc.
- È molto comoda e flessibile per gestire liste di dati variabili
ArrayList — la lista più usata in Java!
Si usa così:
import java.util.ArrayList;
public class ListaDemo {
public static void main(String[] args) {
ArrayList<String> nomi = new ArrayList<>();
nomi.add("Anna");
nomi.add("Marco");
nomi.add("Luca");
System.out.println("Lista: " + nomi); // [Anna, Marco, Luca]
System.out.println("Primo nome: " + nomi.get(0)); // Anna
nomi.remove("Marco"); // oppure: nomi.remove(1);
System.out.println("Dopo rimozione: " + nomi);
}
}
In sintesi il programma qui riportato crea una lista di nomi, la stampa, legge un elemento specifico, ne elimina uno, e poi stampa la lista modificata. È un esempio semplice di come usare un ArrayList
per memorizzare, leggere e modificare dati in Java.
Nel dettaglio:
- Importa la classe
ArrayList
dal packagejava.util
, così possiamo usarla nel programma. - Definisce una classe chiamata
ListaDemo
con il metodomain
, il punto di partenza del programma. - All’interno del
main
, crea una nuova lista dinamica di stringhe chiamatanomi
usandoArrayList<String>
. - Aggiunge tre nomi alla lista:
"Anna"
,"Marco"
e"Luca"
usando il metodo.add()
. - Stampa la lista completa, quindi mostra tutti i nomi contenuti:
[Anna, Marco, Luca]
. - Stampa il primo elemento della lista usando
.get(0)
, cioè"Anna"
. - Rimuove l’elemento
"Marco"
dalla lista (puoi farlo specificando il valore o l’indice). - Stampa la lista aggiornata dopo la rimozione, quindi ora la lista contiene solo
[Anna, Luca]
.
Ciclo su ArrayList
Per fare un ciclo variamo leggermente la sintassi e scriviamo così:
for (String nome : nomi) {
System.out.println("Ciao " + nome);
}
Se ad esempio nomi contiene [“pippo”, “pluto”, “fernando”] avremo come output:
Ciao pippo Ciao pluto Ciao fernando
Lista di oggetti personalizzati
Puoi anche salvare oggetti dentro una lista, esattamente come con gli array.
Persona.java
public class Persona {
String nome;
int età;
public Persona(String nome, int età) {
this.nome = nome;
this.età = età;
}
public void stampa() {
System.out.println(nome + " ha " + età + " anni.");
}
}
Main.java
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Persona> persone = new ArrayList<>();
persone.add(new Persona("Giulia", 24));
persone.add(new Persona("Davide", 31));
persone.add(new Persona("Sara", 29));
for (Persona p : persone) {
p.stampa();
}
}
}
✨ Operazioni utili sulle liste
Metodo | Effetto |
---|---|
add(x) | aggiunge alla fine |
add(i, x) | inserisce in posizione i |
remove(i) / remove(obj) | rimuove per indice o oggetto |
get(i) | legge elemento in posizione i |
set(i, x) | cambia elemento in posizione i |
size() | restituisce numero di elementi |
clear() | svuota la lista |
contains(x) | controlla se contiene x |
Ordinare liste
import java.util.Collections;
Collections.sort(nomi); // ordina la lista in ordine alfabetico
Per oggetti personalizzati serve in genere un Comparator.