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);
}