Как растёт ArrayList?

Ответ

Начальная capacity = 10 (массив создаётся лениво при первом add). При переполнении создаётся новый массив размером примерно 1.5× от старого (oldCapacity + oldCapacity >> 1), элементы копируются. Метод trimToSize() ужимает массив до текущего количества элементов.

Разбор: У ArrayList дефолтная ёмкость 10 (массив создаётся лениво при первом add), а рост идёт по формуле oldCapacity + oldCapacity >> 1, то есть примерно в 1.5 раза. Удвоение (2×) и начальная 16 — это про HashMap, а не ArrayList. ArrayList основан на массиве, а не на узлах (это LinkedList), и не растёт на +1.

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

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