Как создать ArrayList заданного размера?

Создал ArrayList

private ArrayList<String> arr = new ArrayList<>(9);

Предполагаю, что создан массив из 9 пустых (null) элементов. После этого читаю arr.size(), он оказывается равен нулю! Что я делаю не так? Как мне создать массив заполненный null?


Ответы (1 шт):

Автор решения: Владимир Карсанов

В вашем случае 9 не создаёт список с девятью null'ами. Под капотом у ArrayList лежит массив (что неудивительно), 9 в данном случае это так называемое capacity, то есть вместимость. Эта вместимость растёт по мере надобности. Чтобы не тратить время и ресурсы на изменение вместимости, вы можете задать её заранее, если она вам известна. Если нет, то нет. Просто можете забыть о её существовании. Вне разговора об оптимизации производительности помнить о ней не нужно.

Собственно, если задача создать список, инициализированный, 9-ю null'ами, то попробуйте такое решение:

private ArrayList<String> arr = new ArrayList<>(9);
{ for (int i = 0; i < 9; i++) arr.add(null);}

arr в этом случае так и останется полем класса. Можете инициализировать в конструкторе, если хотите.

→ Ссылка