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

Что происходит внутри ArrayList при вставке элемента в его центральную часть?

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

sobes.tech AI

При вставке элемента в центральную часть ArrayList происходит следующее:

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

  2. Все элементы, начиная с позиции вставки и до конца списка, сдвигаются на одну позицию вправо, чтобы освободить место для нового элемента.

  3. Новый элемент записывается в освободившуюся позицию.

Этот сдвиг элементов — операция с линейной сложностью O(n), где n — количество элементов после позиции вставки. Поэтому вставка в середину ArrayList менее эффективна, чем добавление в конец.

Пример:

ArrayList<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
list.add(2, 99); // вставляем 99 на позицию с индексом 2
// После вставки: [1, 2, 99, 3, 4, 5]