Junior — Middle
110
Ichki massiv hozirgi chegarasidan oshmagan taqdirda, ArrayList ichida kolleksiyaning boshiga element qo'shilganda qanday operatsiyalar yuz beradi?
Qaerda so'ralgan kompaniyalar
AIdan javob
sobes.tech AI
При добавлении элемента в начало ArrayList, если внутренний массив не превышает свою текущую вместимость, происходит сдвиг всех существующих элементов на одну позицию вправо, чтобы освободить место для нового элемента в индексе 0. Это реализуется с помощью System.arraycopy, который копирует элементы с позиции 0 до текущей длины на позиции 1 и далее. После сдвига новый элемент записывается в индекс 0, а размер коллекции увеличивается на 1.
Примерно так:
// Внутренний массив: elementData
// size - текущий размер
System.arraycopy(elementData, 0, elementData, 1, size);
elementData[0] = newElement;
size++;
Это операция имеет временную сложность O(n), где n — количество элементов, так как все элементы сдвигаются на одну позицию.