Sobes.tech
Back to questions
Junior — Middle
108

Каким образом определяется начальный объем ArrayList при его создании?

Companies where asked
ПСБ

Answer from AI

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 сразу