高輝度学習と15日の要約を訓練:ArrayListのとLinkedListの違い

一、ArrayListに

ArrayListのは扱うことができ、可変長配列型である、ここで「数」のグループに限定されるものではなく、ArrayListには、任意の型のオブジェクトを保持することができ、一般的なクラスです。名前が示すように、オブジェクトは、すべてのタイプの親クラスであるので、記憶されたタイプオブジェクトクラスオブジェクトのArrayListの内部配列が存在するため、その内部の使用は、オブジェクトを格納する配列であるので、それは、配列ArrayListのリストです。一般的に使用される方法は、ArrayListのクラスの追加(ある)、クリア()、(取得)、のindexOf()、(削除)など、ソート()、内のtoArray()、のtoString()、インタフェースIteratorを実装プライベートArrayListの内部クラスながら、 、あなたは同時に、ArrayListのイテレータを取得するイテレータ()メソッドを使用することができますので、プライベートクラスは、反復子インタフェースを実装してあり、ArrayListにも反復子のイテレータを取得するために反復子()メソッドを呼び出すことができます。

ArrayListのオブジェクトを格納する配列を依存し、それをパッケージ化するので、その方法のいくつかの効率を探しているので、ほぼ通常の配列の効率でO(N)であり、これはArrayListの変数「アレイ」でありますあなたは、指定されたすべてのオブジェクトを格納することができます。

ArrayListのは、スレッドセーフではありませんので、また、以降のすべてのArrayListの方法は、単一のスレッドではデフォルトで行われています。あなたはマルチスレッドで使用したい場合は、コールするArrayListのために)(静的メソッドsynchronizedList Colletionsクラスを使用する必要があります。

二、LinkedListの

LinkedListのは、二重リンクリストとして見ることができ、すべての操作は、それがのDequeインタフェースと、Listインタフェースを実装しているため操作の二重リンクリストであると考えることができます。あなたは、同時の環境でそれを使用する場合同様に、LinkedListのは、スレッドセーフで、同じ静的メソッドsynchronizedList Colletionsクラスは、()LinkedListのために呼び出すことができます。

LinkedListのではなく、通常のデータを格納するためのアレイが、ノードを使用して内部で実施するが、 データを格納するために、最後のノード点リストのリストの先頭と末尾を指す最初のノードがあります。ArrayListにのみ、アレイの末尾にデータを追加するとは異なり、LINKLISTを容易リストのデータリストの先頭または末尾に挿入することができる、または指定されたノードを除去する前と後のデータを挿入しても、リンクされたリストのノードのリストヘッド又はテールを提供する、または削除中間ノードは、あなたはまた、ノードが存在するかどうかを確認することができます。データが尾に挿入されるデフォルトのリストで()メソッドを追加します。要するに、LinkedListのは、操作の便利多数の方法を提供し、その挿入または他の方法は、ArrayListの型よりも有意に高い効率を高めるために、それは二重にリンクされたリストであるため、クエリの効率は、低くします。

したがって、LinkedListのとArrayListの間の最大の差は、方法のLinkedListは、より柔軟かつ効率的な部分は、データが頻繁場合について、はるかに効率的なArrayListの対応する方法よりも、およびLinkedListのを推薦するのに十分に柔軟であることをオペレータを必要としている、配列変更について小さな、主にケースを照会するために使用され、あなたはArrayListのを使用することができます。

おすすめ

転載: www.cnblogs.com/godoforange/p/11610215.html