1.まず、私たちはその基礎となるデータ構造から分析します
(1)のArrayListを見ることができ、ベクターは、配列に基づいて実装されている、あなたは、その構造から単語を構成することができるが、両者は依然として差の少しを持っています
原理は空の配列を作成するために、オブジェクトの動的配列を達成するために、既定のコンストラクタを使用することですArrayListの
原理は達成するためのベクターのオブジェクトの動的配列の使用であるが、それはデフォルトコンストラクタは、サイズ10のオブジェクトの新しい配列を作成します
後に(2)ArrayListの第1の添加元素、拡張容量は10、拡張アルゴリズムである:+元の配列の元のサイズの半分が配列(すなわち1.5倍)
これは明らかに、ArrayListの拡大を基本原則に注意する必要があります。同様の膨張機構とベクトルのArrayList、差は、各増分が容量拡張を倍増している場合、それは2倍であるベクトル、ベクトル2例0の場合であり、かつ場合増分> 0元のサイズの増分に拡大し、ときArrayListの1.5倍です。1.5倍の増加が非常に遅いようで、多くの場合、頻繁拡大につながる要素の数を増やし、配列の再配分非効率的なこと?実際には、実際の増加の1.5倍の量のすべての増加が大きいと大きくなる
動作を削除または挿入する(3)はArrayListのとベクトル不適当
(4)動的配列の過膨張を防止するためには、初期容量が与えられると、ArrayListのまたはVector時間を作成することが推奨されます。
(5)使用のための安全でないシングルスレッドアクセスを、より高い効率、およびベクタースレッドセーフに使用するのに適した、マルチスレッドアクセスに使用するのに適した、より効率的なマルチスレッドのArrayList