Sobes.tech
Junior — Middle

Come cambia la dimensione di ArrayList durante l'aggiunta sequenziale di elementi fino a raggiungere una certa quantità?

sobes.tech AI

Risposta dell'AI

In Java, la classe ArrayList implementa un array dinamico che aumenta automaticamente le sue dimensioni quando vengono aggiunti nuovi elementi, se la capacità attuale è piena.

Inizialmente, ArrayList viene creata con una certa capacità (di default 10). Quando il numero di elementi raggiunge questa capacità, la dimensione dell'array interno viene aumentata. Nell'implementazione standard, la dimensione aumenta di circa il 50% rispetto a quella attuale (cioè, nuova capacità = vecchia capacità + vecchia capacità / 2).

Questo permette di bilanciare i costi di copia dei dati e l'uso della memoria.

Esempio:

ArrayList<Integer> list = new ArrayList<>();
// Aggiungiamo elementi, quando la dimensione raggiunge 10, la capacità aumenterà circa a 15
for (int i = 0; i < 20; i++) {
    list.add(i);
}