ArrayListのJavaのソースコード解析の目的で、LinkedListの、ベクトル

配列リスト

JDK 7
リストが新しいのArrayListのArrayListを()=であり; // オブジェクト10の底部の長さを作成し、[]の配列からelementData
List.add(123);の//からelementData [0]は、新しい新しい整数(123)=
...
一覧.add(11)が、根本的な原因からelementDataアレイ容量は、その後、十分な拡張でない場合は、//これを追加します。
デフォルトでは、1.5倍の体積の拡大、必要が新しい配列に、元のデータ配列をコピーしている間。


結論:これは、引数のコンストラクタの開発で使用するために推奨されます。ArrayListのリスト=新しいArrayListを(int型の容量)、 頻繁な展開のために非常に時間がかかります。


変化は、ArrayListの中に8をjdk:
ArrayListの一覧=新しい新規のArrayList(); //下地オブジェクト[]からelementData初期長さ10の配列を作成しなかった} {ある。

List.add(123); //追加する最初の呼び出し( )、アレイ10の長さの底部が作成され、123データからelementDataに付加されていない[0]
...
加算の後続の膨張動作なし異なるJDK 7。
概要:JDK7のArrayList内のオブジェクトを作成すると、飢えた男の単一例と同様であり、オブジェクトのjdk8 ArrayListに
似たシングルトン怠惰なスタイルを作成するために、メモリを節約し、配列の作成を遅らせました。

 

LinkedListの

LinkedListのリスト=新しいLinkedListの();内部は、ノードの最初のタイプと最後のプロパティを宣言し、デフォルト値はnullです
List.add(123); //ノードパッケージ123に、Nodeオブジェクトが作成されます。

ここで、ノードは次のように定義される:文のLinkedListの二重リンクリスト反射
ノード<E> {プライベート静的クラス
E項目を、
ノード<E>次に、
ノード<E> PREV。

ノード(ノード<E> PREV、Eの要素、ノード<E>次){
this.item =エレメント。
this.next =次回。
this.prev = PREV。
}
}

 

ベクター

JDK7およびベクターによるjdk8()オブジェクトは、アレイの底部10の長さで作成されたとき、コンストラクタが作成します。
膨張の点で、膨張は、アレイのデフォルトの2倍の長さです。

おすすめ

転載: www.cnblogs.com/mcq1999/p/12113191.html