1. コレクションとは
2. コレクションフレームワーク
コレクションはJAVAにおいてコレクションフレームワークとして提供されています。
コレクションフレームワークは「仕様」を表すコレクションインタフェースと「実装」としての実装クラスからなる。
● コレクションインタフェース
コレクションは複数のデータを扱うための抽象データ型で、その記述は操作群の仕様として記述することができます。JAVAでは操作群をインタフェースとソテ記述します。
JAVAのコレクションインタフェースはList Interface、Set、SortedSet、Map、 SortedMap、Queue、Dequeがありますが、開発現場ではQueue、Dequeがあまり使用されていません。
インタフェース | 記述 |
---|---|
List | 格納される要素において重複を許可し、順番を持つコレクションです。インデックス番号で要素を識別し、前後に要素をたどったり、要素を消したり追加したりできます。 |
Set | 格納される要素において重複を許可しないコレクションです。要素が重複しているかどうかの判断は利用者が与える比較メソッドにより行います。 |
SortedSet | Setの特徴を継承し自然順あるいはしてしたメソッドに基づき要素をソートすることができます。 |
Map | 1つのキー値を1つの要素にマッピングうる。キーの重複は許さない。 |
SortedMap | Mapの特徴を継承し自然順あるいは指定したメソッドに基づき要素をソートすることができます。 |
● コレクションクラス
「List」「Set」「Map」はインターフェースとして用意されていますが、実際に使用する際には、これらのインターフェースを実装したクラスを使用します。
以下はそれぞれのインタンフェスにおいてコレクションクラスの特徴です。
インタフェース | コレクションクラス | 記述 |
---|---|---|
List | ArrayList | 配列による実装で、要素の重複を許可する |
LinkedList | 双方向連結リストによる実装で、要素の重複を許可する | |
Set | HashSet | HashMapを利用した実装で、重複を許可しません |
LinkedHashSet | 予測可能な繰り返し順序をもつ、ハッシュ表と連結リストによる実装 | |
SortedSet | TreeSet | TreeMapを利用した実装で、要素はデフォルトで昇順に並べられ、重複を許可されません |
Map | HashMap | ハッシュテーブルに基づく実装で、順序を保証しません |
LinkHashMap | 予想可能な繰り返し順序をもち、ハッシュ表と連結リストによる実装です | |
SortedMap | TreeMap | Red-Black Treeに基づく実装です。要素ははデフォルトで昇順に並べられます |
● 総称性
JAVAでの総称性はコレクションフレームワークのインタフェースおよび実装クラスにおける型引数として利用できます。
インタフェースの場合: コレクションインタフェース名<要素のデータ型名またはクラス名> 実装クラスの場合: コレクション実装クラス名<要素のデータ型またはクラス名>
//インタフェースの場合: List< Integer > //実装クラスの場合: ArrayList< Integer >
3. まとめ
この記事ではJavaのコレクションについてお伝えしてきました。色々紹介しましたが、特に覚えて欲しいのはコレクションの各インタフェース名とそれぞれのインタフェースの各コレクションクラス名ぐらい覚えてくださればいいです。役割、使い方などは次の記事から詳しく紹介します。