突っ走り書き

見せるほどのものでは..

ArrayList と HashSet の初期化

ArrayList を new するとき

ArrayList は次のように初期化できます.

List<String> names = new ArrayList<String>();

初期容量を指定すると尚良し

ArrayListコンストラクタでは
こんなふうに初期容量を指定して new できます.

List<String> names = new ArrayList<String>(64);

ArrayList の初期化は 10 です.
ArrayList は配列で実装されているため
要素の数だけの連続領域を必要とします.
その最小値をコンストラクタに渡すことで,
無駄な処理をなくすことができます.

LinkedList にはそんなコンストラクタはない

同じ List でも LinkedList には,
初期容量を指定できるコンストラクタは存在しません.
LinkedList は連続領域を必要としない連結リスとだからです.

HashSet も同様

初期容量の指定は HashSet についても同様です.
指定がないとき,デフォルト値は 16 で new されます.

Set<String> names = new HashSet<String>(124)