Sobes.tech
Junior — Middle

Jak se mění velikost ArrayList při sekvenčním přidávání prvků až do dosažení určitého počtu?

sobes.tech AI

Odpověď od AI

V jazyce Java implementuje třída ArrayList dynamické pole, které se automaticky zvětšuje při přidání nových prvků, pokud je aktuální kapacita plná.

Původně je ArrayList vytvořen s určitou kapacitou (výchozí 10). Když počet prvků dosáhne této kapacity, velikost vnitřního pole se zvětší. Ve standardní implementaci se velikost zvětší přibližně o 50 % aktuální (tedy nová kapacita = stará kapacita + stará kapacita / 2).

To umožňuje vyvážit náklady na kopírování dat a využití paměti.

Příklad:

ArrayList<Integer> list = new ArrayList<>();
// Přidáváme prvky, když velikost dosáhne 10, kapacita se přibližně zvýší na 15
for (int i = 0; i < 20; i++) {
    list.add(i);
}