Sobes.tech
Junior — Middle

Ako sa mení veľkosť ArrayList pri postupnom pridávaní prvkov až do dosiahnutia určitého počtu

sobes.tech AI

Odpoveď od AI

V Jave implementuje trieda ArrayList dynamický poľ, ktorý sa automaticky zväčšuje pri pridávaní nových prvkov, ak je aktuálna kapacita zaplnená.

Pôvodne je ArrayList vytvorený s určitým kapacitným rozsahom (predvolene 10). Keď počet prvkov dosiahne túto kapacitu, veľkosť vnútorného poľa sa zväčší. V štandardnej implementácii sa veľkosť zväčší približne o 50 % aktuálnej (t.j., nová kapacita = stará kapacita + stará kapacita / 2).

Toto umožňuje vyvážiť náklady na kopírovanie dát a využitie pamäti.

Príklad:

ArrayList<Integer> list = new ArrayList<>();
// Pridávame prvky, keď veľkosť dosiahne 10, kapacita sa približne zvýši na 15
for (int i = 0; i < 20; i++) {
    list.add(i);
}