Junior — Middle
Какви стъпки се предприемат за добавяне на нов елемент към структурата ArrayList?
sobes.tech AI
Отговор от AI
При добавяне на нов елемент към ArrayList се изпълняват следните стъпки:
- Проверява се дали текущият вътрешен масив (обикновено Object[]) е достатъчно голям, за да съхранява новия елемент.
- Ако няма достатъчно място, се създава нов масив с увеличен размер (обикновено с 50% или 1.5 пъти по-голям), и всички елементи се копират в него.
- Новият елемент се поставя на първата свободна позиция във вътрешния масив.
- Броячът на размера на списъка (size) се увеличава.
Обикновено добавянето на елемент изглежда така:
public boolean add(E e) {
ensureCapacityInternal(size + 1); // проверка и разширяване на масива
elementData[size++] = e; // добавяне на елемента и увеличаване на размера
return true;
}
private void ensureCapacityInternal(int minCapacity) {
if (minCapacity - elementData.length > 0)
grow(minCapacity);
}
private void grow(int minCapacity) {
int oldCapacity = elementData.length;
int newCapacity = oldCapacity + (oldCapacity >> 1); // увеличение с 50%
if (newCapacity - minCapacity < 0)
newCapacity = minCapacity;
elementData = Arrays.copyOf(elementData, newCapacity);
}