Sobes.tech
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);
}