配列とArrayListを、リストとLinkedListの違いは?

次のリスト異なる点アレイ(配列)とのArrayList(セット):

  1. アレイは、ArrayListのが唯一のオブジェクト・タイプが含まれ、プリ​​ミティブ型とオブジェクト型を含めることができます。

  2. アレイのサイズは、ArrayListのサイズは動的であり、固定されています。

  3. addAll()のremoveAll()、イテレータ()等:などのArrayListの方法と多くの機能を提供します。

  4. コーディングの手間を軽減する自動包装セットを使用してデータの基本的なタイプについて。固定サイズの基本的なデータ型を扱うときしかし、このように比較的遅いです。

まず、アレイ(配列)

Javaの最も基本的なデータ構造、動的に作成する方法と要素の同じタイプでなければなりませんアクセスJava配列、配列型定義、。アレイは固定サイズの容器を連続した線状要素を格納するために下部空間で使用されています。

利点:メモリに、連続速く、操作が簡単です。

短所:配列の定義の長さを定義するには、問題を引き起こす可能性が短すぎる、長すぎる、非常に柔軟ではありません。便利で、挿入とデータの削除を追加します。

第二に、コレクションのArrayList

ArrayListの底部は、容器であり、そのサイズは固定されていない、より大きな空間を線形要素連続空間を格納するには不十分である場合、空間的、連続線形要素を格納し、再適用するために使用されている(約2倍の空間)オリジナルコンテンツの上に移動されます

だから、ここから見ることができる必要がスペースを再申請するので、ArrayListをより高効率の配列

長所:名前空間にSystem.Collectionsの一部。サイズは、動的な膨張・収縮です。長さArrayListオブジェクトの宣言を指定する必要はありません。ArrayListのは、あなたが簡単に追加、削除、およびデータを挿入することができ、IListインターフェイスを継承しています。

短所:当向集合插入不同类型的数据后(ArrayList将数据当作object存储)エラータイプの不一致が容易に使用された場合、データ処理中に、変換処理の種類が必要起こります存在装箱与拆箱操作,造成性能大量损耗的现象

ArrayList list = new ArrayList();
list.Add("aa");
list.Add(11);
list[1] = 123;//修改
list.Remove(123);//移除
list.RemoveAt(0);

第三に、一般的なリスト

Listクラスは、(Listインタフェースは、ArrayListのを継承する)ジェネリッククラスArrayListの等価クラスです。Listクラス(抽象クラスを直接インスタンス化することはできません)また、Listインタフェースを継承しているため、その使用のほとんどは、ArrayListに似ています。主な違いは、あなたが同時にリストコレクション、我々を宣言するときということです需要为其声明List集合内数据的对象类型

長所:文のリストの際に内部データ収集のArrayListコレクションと同様にしてIListインターフェイスを継承するには、また、オブジェクト型のコレクションを宣言し、ボクシングとアンボクシングの問題を回避します。

List<Integer> list=new ArrayList<Integer>();

list.Add(123);

list[0]=111;//修改

list.RemoveAt(0);//移除

list.Add(「ABC」)の場合; //コンパイラは、パフォーマンスの問題やボクシングとアンボクシングのセキュリティ問題の種類を回避するために、エラーを報告します。

ここでのArrayListとLinkedListはの違いを説明します

ArrayListのとLinkedListのは、Listインタフェースを実装して、彼らは次のような違いがあります。

1.ArrayListデータインターフェイスをインデックスに基づいており、それは根本的な配列です。これは、要素(1)の時間計算量Oにランダムアクセスすることができ これに対応して、LinkedListのは、そのデータの形式で格納されている要素のリスト、各要素と前の要素と一緒に戻ってそれをリンクし、この場合には、シーク時間複雑さの要素(OでありますN)。

2.についてのArrayListの、挿入のLinkedListの、また、高速削除、任意の要素がセット位置に追加されるとき、サイズがインデックス画像として再計算される必要がある、または配列を更新しないからです。

各ノードの前の要素、下向きの要素に2つの基準点を記憶するため3.LinkedListはArrayListの、LinkedListのより多くのメモリを占めました。

おすすめ

転載: blog.csdn.net/qunqunstyle99/article/details/95045693