コンテナ (データ型)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

コンピュータプログラミングにおいて、コンテナとはオブジェクトの集まりを表現するデータ構造抽象データ型またはクラスの総称である。コレクションとも言う。コンテナには複数の種類があり、それそれ独自の方法でオブジェクトを組織的に格納する。

よく知られたものには、

などがある。

コンテナクラスは一般的に以下のような操作を実装している。

  • 新しい空のコンテナを作成する
  • 格納しているオブジェクト(要素)の数を得る
  • すべての要素を取り除く(空にする)
  • 新しい要素を格納する
  • 特定の要素を取り除く
  • 格納している要素へのアクセス手段を提供する

コンテナの要素にはどのようなデータ型のオブジェクトも取ることができ、他のコンテナを要素に取ることもできる。またコンテナのサイズは要素数に合わせて自動的に変化する。

コンテナがオブジェクトを格納する方法には2種類ある。によるものと参照によるものである。

値によるコンテナ
オブジェクトのコピーを格納する。要素へのアクセスはそのコピーを返す。あるオブジェクトをコンテナに格納した(このときコピーされる)後で外部で変更を加えても、コンテナの中身には影響しない。
参照によるコンテナ
オブジェクトへの参照やポインタのみを格納する。要素へのアクセスはその参照を返す。あるオブジェクトをコンテナに格納した後で外部で変更を加えると、コンテナの中身(その要素)が変更される。弱い参照によってガベージコレクションを考慮するものもある。

Javaのコレクション・フレームワークやC++STLなどで、多くのコンテナが実装されている。

関連項目[編集]