ホーム > Java > 第11章-2 インタフェースと実装クラス

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 自然順序または特に定義した順序により、優先度の高いものを先に出力するキューです。