4.7. HashtableとVector
HashtableとVectorは互換性を保つために残されているといっても過言ではないので、
積極的に使う必要性はありません。
HashtableとHashMapの違いは同期化(synchronized)の有無です。
『Before』
Map m = new Hashtable(...);
『After』
Map m = Collections.synchronizedMap(new HashMap(...));
synchronizedMapによって同期化がなされます。つまりマルチスレッドに対応します。
HashMapを同期化することによってHashtableと全く同じ機能になります。
VectorとArrayList の違いは同期化の有無です。
『Before』
List list = new Vector(...);
『After』
List list = Collections.synchronizedList(new ArrayList(...));
ArrayList を同期化することによってVectorと全く同じ機能になります。
同じように、SetやCollectionも同期化することができます。
// 同期化コレクション
Collection c = Collections.synchronizedCollection(new ArrayList());
// 同期化セット
Set s = Collections.synchronizedSet(new HashSet());
// 同期化マップ
Map m = Collections.synchronizedMap(new HashMap());