Как создать 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 в этом случае так и останется полем класса. Можете инициализировать в конструкторе, если хотите.