Ответ
При добавлении элемента в ArrayList с размером 10 (capacity 10), произойдет следующее:
- Если
size == capacity(10), внутренний массив переполнится. - Создается новый массив с увеличенной емкостью (обычно
oldCapacity * 1.5→ 15). - Все существующие элементы копируются в новый массив.
- Новый элемент добавляется в конец.
Пример:
ArrayList<Integer> list = new ArrayList<>(10);
for (int i = 0; i < 10; i++) list.add(i); // size=10, capacity=10
list.add(10); // Произойдет расширение массива
Это автоматический процесс, но он создает временные накладные расходы на копирование.