コンテナ (データ型)
コンピュータプログラミングにおいて、コンテナとはオブジェクトの集まりを表現するデータ構造抽象データ型またはクラスの総称である。コレクションとも言う。コンテナには複数の種類があり、それそれ独自の方法でオブジェクトを組織的に格納する。よく知られたものには、 などがある。コンテナクラスは一般的に以下のような操作を実装している。 コンテナの要素にはどのようなデータ型のオブジェクトも取ることができ、他のコンテナを要素に取ることもできる。またコンテナのサイズは要素数に合わせて自動的に変化する。コンテナがオブジェクトを格納する方法には2種類ある。によるものと参照によるものである。
値によるコンテナ
オブジェクトのコピーを格納する。要素へのアクセスはそのコピーを返す。あるオブジェクトをコンテナに格納した(このときコピーされる)後で外部で変更を加えても、コンテナの中身には影響しない。
参照によるコンテナ
オブジェクトへの参照やポインタのみを格納する。要素へのアクセスはその参照を返す。あるオブジェクトをコンテナに格納した後で外部で変更を加えると、コンテナの中身(その要素)が変更される。弱い参照によってガベージコレクションを考慮するものもある。
Javaのコレクション・フレームワークやC++STLなどで、多くのコンテナが実装されている。

1 関連項目