回答:
まず、a List
はCollection
です。Collection
ただし、これは特殊なものです。
A Collection
はそれだけです。アイテムのコレクションです。ものを追加したり、削除したり、イテレートしたり、そこにあるものの量を問い合わせたりできます。
List
あなたは位置の要素を取得することができます:それにものの定義された順序に関する情報を追加してn個あなたがた位置にある要素を追加することができ、nは、あなたが位置にある要素を削除することができ、N。
ではCollection
、あなたはそれを行うことはできません。「このコレクション内の5番目の要素は、」定義されていない、いない定義された順序があるため。
他にも特殊なコレクションがあります。たとえばSet
、同じ要素が2回含まれないという機能が追加されます。
Collection
Javaコレクション階層へのルートインターフェースです。 List
は、順序付けられたコレクションを定義する1つのサブインターフェイスです。他のサブインターフェイスは Queue
、通常、処理の準備ができている要素(例:stack)を格納します。
次の図は、さまざまなJavaコレクションタイプ間の関係を示しています。
Map
ないCollection
。
Java APIはこれに答えるのに最適です
コレクション
コレクション階層のルートインターフェイス。コレクションは、その要素と呼ばれるオブジェクトのグループを表します。一部のコレクションは重複する要素を許可し、他は許可しません。一部は注文済みで、他は未注文です。JDKは、このインターフェースの直接の実装を提供していません。SetやListなどのより具体的なサブインターフェースの実装を提供しています。このインターフェイスは通常、コレクションを渡し、最大の一般性が望まれる場所でそれらを操作するために使用されます。
リスト(コレクションを拡張)
順序付けられたコレクション(シーケンスとも呼ばれます)。このインターフェイスのユーザーは、リスト内の各要素を挿入する場所を正確に制御できます。ユーザーは、整数インデックス(リスト内の位置)によって要素にアクセスし、リスト内の要素を検索できます。
セットとは異なり、リストは通常、重複する要素を許可します。より正式には、リストは通常、e1.equals(e2)のような要素e1とe2のペアを許可し、null要素を許可する場合は通常、複数のnull要素を許可します。ユーザーが重複を挿入しようとするとランタイム例外をスローして、重複を禁止するリストを実装したいと考える人も少なくありませんが、このような使用法はまれであると予想されます。
コレクションは、他のオブジェクトのコレクションを含むことができるJavaオブジェクトを記述する高レベルのインターフェースです。それらがどのようにアクセスされるか、同じオブジェクトの複数のコピーが同じコレクション内に存在できるかどうか、または順序が重要であるかどうかはそれほど明確ではありません。 リストは具体的にはオブジェクトの順序付けられたコレクションです。オブジェクトを特定の順序でリストに入れると、それらはその順序のままになります。
また、これらの2つのインターフェースをどこで使用するかを決定することは、使用する具体的な実装を決定することよりもはるかに重要ではありません。これは、プログラムの時間と空間のパフォーマンスに影響を与えます。たとえば、リストが必要な場合は、ArrayListまたはLinkedListを使用できます。これらはそれぞれ、アプリケーションに影響を与えます。他のコレクションタイプ(セットなど)についても、同様の考慮事項が適用されます。