2012-02-15 2 views
4

Javaのマップは、ほとんどのオンラインの「チュートリアル」では、「コレクション」インタフェースを継承しません。マップは、セット、リスト、およびキューと同じカテゴリで説明されています。マップはコレクションフレームワークに属していますか?

それにもかかわらず、マップはコレクションフレームワークに属していますか?

答えて

3

コレクションの最善の説明は、Java Collection Tutorialの冒頭にあります。

コレクション(コンテナとも呼ばれます)は、複数の要素を1つの単位にグループ化する単なるオブジェクトです。コレクションは、集約データの格納、取得、操作、および通信に使用されます。通常、ポーカーハンド(カードのコレクション)、メールフォルダ(文字の集合)、または電話帳(名前の電話番号へのマッピング)など、自然なグループを形成するデータアイテムを表します。

さらにチュートリアルでは、それらのすべてが上述したパラダイムに従うコアコレクションインタフェースを示しています

次のリストは、コアコレクションインタフェースについて説明します。

コレクション - ルートコレクション階層のコレクションは、その要素として知られるオブジェクトのグループを表します。 Collectionインタフェースは、すべてのコレクションが実装する最も一般的な分母であり、最大限の汎用性が求められる場合にはコレクションを渡したり、コレクションを操作したりするために使用されます。いくつかのタイプのコレクションは重複する要素を許可しますが、他のものは許可しません。いくつかは注文され、他は順序付けられていません。 Javaプラットフォームは、このインタフェースの直接実装は提供しませんが、SetやListなどのより特定のサブインタフェースの実装を提供します。コレクションインタフェースの節も参照してください。

セット - 重複する要素を含むことができないコレクション。このインターフェイスは、数学的集合抽象をモデル化し、ポーカーハンドを含むカード、生徒のスケジュールを構成するコース、またはマシン上で実行されるプロセスなどのセットを表すために使用されます。 Set Interfaceセクションも参照してください。

リスト - 順序付けられたコレクション(時々シーケンスと呼ばれる)。リストには重複要素を含めることができます。リストのユーザは、一般に、リスト内の各要素が挿入されている場所を正確に制御し、整数インデックス(位置)で要素にアクセスできます。 Vectorを使ったことがあるなら、あなたはListの一般的な風味に精通しています。リスト・インターフェースのセクションも参照してください。

キュー - 処理前に複数の要素を保持するために使用されるコレクション。基本的なCollection操作の他に、キューは追加の挿入、抽出、および検査操作を提供します。

通常は、要素をFIFO(先入れ先出し)方式で並べ替えます。例外の中には、供給されたコンパレータまたは要素の自然順序付けに従って要素を順序付けする優先度キューがあります。順序がどのようなものであっても、キューの先頭は削除またはポーリングの呼び出しによって削除される要素です。 FIFOキューでは、すべての新しい要素がキューの末尾に挿入されます。他の種類のキューでは、異なる配置ルールを使用することがあります。すべてのキュー実装では、順序付けプロパティを指定する必要があります。 「キューインタフェース」のセクションも参照してください。

マップ - キーを値にマップするオブジェクト。マップに重複キーを含めることはできません。各キーは最大でも1つの値にマップできます。 Hashtableを使用していれば、既にMapの基本をよく知っています。 「マップ・インターフェース」セクションも参照してください。それは本当にCollectionインタフェースを実装する必要はありませんが

ので、地図はコレクションです。

+0

ありがとうございました。ご回答ありがとうございます – Neifen

+0

問題ありません。私は喜んで助けてくれました。 –

2

MapインターフェイスはCollectionインターフェイスの拡張ではありません。代わりに、インタフェースは、キーと値の関連付けを維持するためのインタフェース階層を開始します。 official tutorial

1

チェックアウト、特にLesson: Interfaces

[...]コアコレクションインタフェースは、Java Collections Frameworkの基礎です。次の図に示すように、コアコレクションインターフェイスは階層を形成します。

collections hierarchy

さらに:

  • Collection [...]

  • 以下のリストは、コアコレクションインタフェースを記述する0 [...]

  • List [...]

  • Queue [...]

  • Map [...]

+0

ご回答ありがとうございました – Neifen

1

概念的に地図は間違いなくコレクションであり、以来ずっとスモールトークです。 Javaのタイプ階層はで、概念関係を管理するのではなく、むしろ実用的な関係、具体的にどのメソッドを実装する必要があるかなどについて説明します。

マップのようなコレクションでは、マップ以外の場合と大きく異なります。たとえばmapでは、asscociation-objectsを使っている場合はput(key、value)とget(key)(または同様のもの)を持っていなければならないのに対し、map以外のものはiterator()とadd() 。

0

なぜなら、コレクションがキーと値のペアの形式でマップとして動作する値のセットで動作するからです。

関連する問題