ArrayListのとLinkedListのは、基礎となるコードのアイデアを実装します

ArrayListには実現Listインタフェースの数のJavaクラスの集まりである、リストコレクションインタフェースの親です。ArrayListの表にシーケンステーブル線形データ構造の基礎となる、底部が動的に増加させることができる配列の長さですArray配列の欠点を補うために多くの欠点、ArrayListのがあります。

出典:

1)一時オブジェクト[]のからelementData; アレイが下を指すために使用される配列への参照;プライベートint型のサイズは、素子サイズの各値を追加、削除、実際の要素のArrayListの数を示すために使用されて変更されます。

2)パブリッククラスのArrayList <E>はAbstractList <E>用具一覧<E>、ランダム・、Cloneableを、java.io.Serializableの{}の3つのインタフェースがない方法ではないに延びています。

3)アレイのデフォルトの長さ:新規のArrayListにJDK 1.7()>>>この(10);新規のArrayListにJDK 1.8()、0は、配列の長さです。第1膨張要素が追加されます。

4)配列が一杯になったときに、元のデフォルトの50%のすべての拡張、ビット単位を使用

 

プライベート のボイドが成長(int型minCapacityに){
         // オーバーフローを意識したコード
        int型 oldCapacity = elementData.length。
        INT newCapacity = oldCapacity +(oldCapacity >> 1 )。
        もし(newCapacity - minCapacityに<0 
            newCapacity = minCapacityに。
        もし(newCapacity - MAX_ARRAY_SIZE> 0 
            newCapacity = hugeCapacity(minCapacityに)。
        // minCapacityには通常に近い大きさにあるので、これは勝利です: 
        からelementData = Arrays.copyOf(からelementData、newCapacity)。
    }

 

拡張要素の50%が添加膨張要素の最小容量に、ストアに十分なスペースはない場合。

5)反復子();で内部クラスのArrayListを提供する:のような器具のhasNext()、next()メソッドとのITR実装イテレータ。

基本的な考え方:インデックス/ポインタ、最初の要素の最初の実装では、次の次の要素(時間)を指し、のhasNext()が同じサイズか否かを判定する。

長所と短所:

配列の長所と短所は、最速のインデックスクエリでのArrayList配列の長所と短所を決定する追加、削除要素は、非効率的なモバイル要素の数が多いです。、削除され、非効率性を追加するが、欠点も明らかです、; ArrayListのインデックスだけでなく、速いことで、クエリが、また、長さの動的な変化を達成します。リンゴと非効率的にリンゴを比較するために、コンテンツで検索。

要約すると、追加および削除操作を、より時間がArrayListの推奨されない。提案された使用ArrayListの動作要素を得るために、乱数に応じてインデックスをトラバースするとき。

ベクターは、ArrayListに、スレッドセーフな、低効率、100%のすべての拡張の初期バージョンです。

LinkedListの底が二重リスト、長所と短所の配列、およびちょうど反対リンクされています。

おすすめ

転載: www.cnblogs.com/sinoaccer/p/12078515.html
おすすめ