Java の ArrayList における容量の拡大メカニズムとは何か
JavaのArrayListは、配列を基盤とした動的配列であり、その拡張メカニズムの原則は以下のとおりです。
- 初期の容量:ArrayList オブジェクトを作成すると、10 要素の容量など、一定の初期容量が割り当てられます。
- ArrayListの拡張戦略:ArrayListの要素数が現在の容量を越えた場合、容量の拡張を行う。ArrayListの拡張戦略は現在の容量に現在の容量の1/2を加えることである。つまり、新しい容量=現在の容量+現在の容量/2
- 拡張時には、新しい配列を作成し、元の配列の要素を新しい配列にコピーします。
- 更新した参照: サイズ変更後、ArrayList 内部参照は新しい配列を指すように更新されます。
あらかじめ格納する要素数が想定される場合は、コンストラクタで初期容量を指定することで、頻繁な容量拡張を避け、パフォーマンスの向上を図れることに注意してください。