Junior
73
questionbank

Какова сложность добавления элемента в ArrayList?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Сложность добавления элемента в ArrayList в среднем случае составляет O(1).

Это достигается за счет использования динамического массива, и добавление происходит в конец списка.

java

Однако, в случае, если внутренний массив ArrayList заполнен, требуется операция увеличения его размера (resize). Это включает создание нового, большего массива и копирование всех существующих элементов в новый массив. Сложность этой операции составляет O(n), где n — текущий размер списка.

java

Если элемент добавляется не в конец списка (методом add(int index, E element)), а в середину или начало, то требуется сдвиг всех последующих элементов на одну позицию вправо. Сложность этой операции составляет O(n), где n — количество элементов, которые необходимо сдвинуть.

java

Таким образом, сложность добавления элемента в ArrayList зависит от места добавления и необходимости resize:

Операция добавленияСредний случайХудший случай (при resize или добавлении не в конец)
add(E element) (в конец)O(1)O(n)
add(int index, E element)O(n)O(n)