Junior — Middle
99
İç massiv hazırkı sərhədini aşmadıqda, ArrayList daxilində kolleksiyanın başlanğıcına element əlavə edilərkən hansı əməliyyatlar baş verir?
Şirkətlər soruşuldu
AI-dan cavab
sobes.tech Süni İntellekt
При добавлении элемента в начало ArrayList, если внутренний массив не превышает свою текущую вместимость, происходит сдвиг всех существующих элементов на одну позицию вправо, чтобы освободить место для нового элемента в индексе 0. Это реализуется с помощью System.arraycopy, который копирует элементы с позиции 0 до текущей длины на позиции 1 и далее. После сдвига новый элемент записывается в индекс 0, а размер коллекции увеличивается на 1.
Примерно так:
// Внутренний массив: elementData
// size - текущий размер
System.arraycopy(elementData, 0, elementData, 1, size);
elementData[0] = newElement;
size++;
Это операция имеет временную сложность O(n), где n — количество элементов, так как все элементы сдвигаются на одну позицию.