Junior — Middle
Jak zmienia się rozmiar ArrayList podczas kolejnego dodawania elementów aż do osiągnięcia określonej ilości?
sobes.tech AI
Odpowiedź od AI
W Javie klasa ArrayList implementuje dynamiczną tablicę, która automatycznie zwiększa swój rozmiar podczas dodawania nowych elementów, jeśli obecna pojemność jest pełna.
Początkowo ArrayList jest tworzony z określoną pojemnością (domyślnie 10). Gdy liczba elementów osiąga tę pojemność, rozmiar wewnętrznej tablicy jest zwiększany. W standardowej implementacji rozmiar zwiększa się o około 50% obecnego (czyli nowa pojemność = stara pojemność + stara pojemność / 2).
To pozwala zrównoważyć koszty kopiowania danych i zużycie pamięci.
Przykład:
ArrayList<Integer> list = new ArrayList<>();
// Dodajemy elementy, gdy rozmiar osiągnie 10, pojemność zwiększy się do około 15
for (int i = 0; i < 20; i++) {
list.add(i);
}