Как работает resize в ArrayList?

Ответ

Новый массив в 1.5 раза больше, копирование через Arrays.copyOf.

Разбор: В ArrayList при нехватке места создаётся новый массив новой ёмкостью oldCapacity + (oldCapacity >> 1), то есть примерно в 1.5 раза больше, а старые элементы копируются через Arrays.copyOf. Удвоение — это про ArrayDeque/HashMap, рост на единицу убил бы амортизированную O(1), а расширить массив «на месте» в Java нельзя — он всегда выделяется заново.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться