Junior — Middle
105
Кадо оператсияҳо дар дохили ArrayList ҳангоми илова кардани унсур ба оғози коллексия, агар массиви дохилӣ аз марзи кунунии худ зиёд нашуда бошад, чӣ рӯй медиҳад?
Ширкатҳо дар куҷо пурсиданд
Ҷавоб аз AI
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 — количество элементов, так как все элементы сдвигаются на одну позицию.