Sobes.tech
Назад к вопросам
Junior — Middle
72

Как определить временные затраты при добавлении элемента в ArrayList?

Компании, где спрашивали
Ifellow

Ответ от нейросети

sobes.tech AI

Временные затраты при добавлении элемента в ArrayList зависят от того, есть ли в списке достаточно места для нового элемента. Если внутренний массив ArrayList не заполнен, добавление происходит за амортизированное время O(1), так как элемент просто помещается в следующую свободную ячейку.

Если же массив заполнен, происходит его расширение: создаётся новый массив большего размера (обычно в 1.5–2 раза больше), и все элементы копируются в него. Это занимает время O(n), где n — текущий размер списка. Однако такие операции происходят редко, поэтому среднее время добавления остаётся близким к O(1).

Пример:

ArrayList<Integer> list = new ArrayList<>();
list.add(10); // Быстрое добавление, если места достаточно