そして、ベクトルとのLinkedListのArrayListの違い

     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

 

おすすめ

転載: www.cnblogs.com/kyrieblog/p/11128882.html