クラスの ArrayList をいつインスタンス化するのか疑問に思っていました。初期サイズを指定して、#1 ではなく #2 のように宣言すると、どういうわけか速くなりますか? または、コンストラクターに追加する列の数が正確にわかっている場合にのみ、コンストラクターに初期サイズを与える必要がありますか?
List<Column> columns = new ArrayList<Column>();List<Column> columns = new ArrayList<Column>(10);
デフォルトでは10参照を割り当てるため、違いはありません
ソースから目撃する
public ArrayList() {
this(10);
}
その使用法は、おおよその数を予測することです。たとえば、最大で約 25 個の要素が必要であり、それも同様に増加すると思われる場合は、initialCapacity を定義して、25コストのかかる操作である配列のコピーを回避します。
ArrayList に入れるメンバーの数が正確にわかっている場合は、初期容量 (2 番目のケース) を指定することで、リストが大きくなったときに基になる配列表現を再作成してコピーすることを回避できます。
あなたの例では10個のメンバーを使用していますが、これはたまたまArrayListの現在の実装のデフォルトサイズです。ただし、より一般的なケースについて質問していると思います。