Для этого аппликативного случая обе опции имеют одинаковые результаты. Однако, если мы поднимем планку и возьмем ее в общий случай по вашему запросу:
Нужно ли указывать только начальный размер конструктора, если я точно знаю, сколько столбцов я им добавлю?
Вы можете сделать это, чтобы избежать изменения размера, которое происходит, когда вы добавляете элемент, который выходит за пределы базового массива списка.
Проверить ArrayList
«ы код:
public boolean add(E e) {
ensureCapacity(size + 1); // Increments modCount!!
elementData[size++] = e;
return true;
}
ensureCapacity
является метод, который изменяется основной массив в списке, если это на самом деле„полный“:
public void ensureCapacity(int minCapacity) {
modCount++;
int oldCapacity = elementData.length;
if (minCapacity > oldCapacity) {
Object oldData[] = elementData;
int newCapacity = (oldCapacity * 3)/2 + 1;
if (newCapacity < minCapacity)
newCapacity = minCapacity;
// minCapacity is usually close to size, so this is a win:
elementData = Arrays.copyOf(elementData, newCapacity);
}
}
Установка начальной известной емкости предотвращает это изменение размеров. Тем не менее, если вы знаете, сколько элементов вы будете использовать, почему бы не массив?
просто подсказка, с java 7 на, вам не нужно писать тип с правой стороны. -> 'Список columns = new ArrayList ()' to 'List columns = new ArrayList <>()' –
q99