Назад к вопросам
Junior — Middle
109
Каким образом определяется начальный объем ArrayList при его создании?
Компании, где спрашивали
ПСБ
Ответ от нейросети
sobes.tech AI
В Android (Java) при создании объекта ArrayList без указания начального размера внутренний массив инициализируется с дефолтной емкостью.
-
Если вызвать конструктор
new ArrayList<>(), то внутренний массив изначально пустой (по факту это пустой массив), и при первом добавлении элемента происходит выделение массива с емкостью 10. -
Если вызвать конструктор с параметром
new ArrayList<>(initialCapacity), то внутренний массив сразу создается с указанной емкостью.
Таким образом, начальный объем внутреннего массива по умолчанию равен 10, но фактически выделяется при первом добавлении элемента.
Пример:
ArrayList<String> list = new ArrayList<>(); // емкость 0, при первом add() выделяется массив на 10 элементов
ArrayList<String> listWithCapacity = new ArrayList<>(20); // емкость 20 сразу