コンテナ (データ型)
コンピュータプログラミングにおいて、コンテナ(英: container)とはオブジェクトの集まりを表現するデータ構造、抽象データ型またはクラスの総称である。コレクション(英: collection)とも言う。コンテナには複数の種類があり、それぞれ独自の方法でオブジェクトを組織的に格納する。
よく知られたものには、
配列
リスト
スタック
キュー
テーブル
連想配列
集合
木
グラフ
などがある。
同じ分類のコンテナであっても、実装形態の違いから、各種操作の計算量(計算時間)やメモリ上に占める空間的特性などが異なるものがある。例えばリストには主に動的配列によるリストと連結リストがあり、それぞれ場面によって向き不向きがある。
コンテナクラスは一般的に以下のような操作を実装している。
新しい空のコンテナを作成する
格納しているオブジェクト(要素)の数を得る
すべての要素を取り除く(空にする)
新しい要素を格納する
特定の要素を取り除く
格納している要素へのアクセス手段を提供する
ジェネリックプログラミングをサポートする言語や、動的型付け言語では、一般的にコンテナの要素にはどのようなデータ型のオブジェクトも取ることができるが、言語によっては要素の型が満たすべき要件が制約として課されていることもある。この要件を満たせば、他のコンテナ型を要素に取るコンテナを定義することもできる。またコンテナのサイズは要素数に合わせて自動的に変化する。
コンテナがオブジェクトを格納する方法には2種類ある。値によるものと参照によるものである。