Java -インタフェースと実装クラス-
インタフェースとクラス構成
List系
このクラスは、インタフェースとして、Listを実装します。
配列のように「何番目の要素か」というインデックス番号で要素にアクセスするタイプです。
いくつの要素を格納するかあらかじめ指定する必要はありません。
サイズは、要素が増えるにしたがって自動的に拡大されます。
クラス | 説明 |
---|---|
ArrayList | List系の代表格で、最もよく利用されるクラスです。 |
LinkedList | 挿入や削除を高速に処理できるリスト構造に加えて、キュー構造やスタック構造の基本機能を持つ双方向性リストです。 |
Vector | ArrayListと同じ機能ですが、同期をとることができます。 ただし、その分ArrayListより効率が劣ります。 |
Set系
これらのクラスはインタフェースとしてSetを実装します。
同じ値の要素を重複して格納することはできません。
クラス | 説明 |
---|---|
HashSet | Set系の代表格です。 要素は相互に連結していないので、順序はありません。したがって、何か特定の順序で取り出すことはできません。 |
LinkedHashSet | 要素は、相互に連結しており、挿入順で順序がつくSetです。 |
TreeSet | 辞書順や数の大小など要素が自然順序で順づけられるSetです。 |
Map系
これらのクラスはインタフェースとしてMapを実装します。
格納するとき、キーと値をセットにして格納します。
高速に検索できるようキー部は、ハッシュ関数で位置を示す特殊な値に変換されます。
したがって、後からキーを指定して要素を高速に取り出すことが可能です。
クラス | 説明 |
---|---|
HashMap | Map系の代表格で、よく利用されるクラスです。 |
LinkedHashMap | 挿入した順序を保持いるMapです。 |
TreeMap | キーの自然順序づけが行われます。 |
Hashtable | hashMapと同じですが、同期をとることができます。 ただし、その分、HashMapより効率が劣ります。 |
Queue系
これらのクラスはインタフェースとしてQueueを実装します。
最初に入力したデータを最初に出力されるものをキューといい、順番待ちの処理などに使用されます。
また、最後に入力したデータが最初に出力されるものをスタックといいます。
Queueの代表格は、List系のLinkedListです。
クラス | 説明 |
---|---|
PriorityQueue | 自然順序または特に定義した順序により、優先度の高いものを先に出力するキューです。 |