連想配列 【associative array】
配列(array)は多くのプログラミング言語に用意されている基本的なデータ構造の一つで、単純に複数のデータを一列に並べたものである。コード中で配列は配列名で参照され、配列内の各要素は添字(インデックス)によって識別される。
通常の配列は添字に0または1から始まる整数(非負整数)の通し番号を用いるが、連想配列では添字に文字列など非負整数に限らず任意のデータを設定することができる。連想配列における添字のことは「キー」(key)と呼ぶことが多い。
キーと値は一対一に対応付けられて格納され、値はキーを指定することで取り出すことができる。格納する値として単独の値(スカラ値)だけでなく配列などのデータ構造を格納したり、別の連想配列を入れ子状に格納することができる言語もある。
例えば、通常の配列では x[0]="日曜" のように記述していたものを、連想配列では x["Sunday"]="日曜" のように記述することができ、要素を番号で管理する場合に比べコードの見通しが良くなることがある。ただし、単純な配列に比べ要素の追加や取り出しが遅く、処理効率や性能では劣るため、用途に応じて通常の配列と使い分ける必要がある。
言語によっては同様のデータ構造を「辞書」あるいは「ディクショナリ」(dictionary)、「ハッシュ」(hash)、「マップ」(map)、「連想リスト」(associative list)などと呼ぶこともある。また、PHPのように添字が整数の配列も連想配列の一種として扱われる言語や、JavaScriptのようにオブジェクトが連想配列の一種として定義される言語もある。
なお、文字列のキーと任意の値を一対一に対応付けて格納するという構造はデータベースの一種である「KVS」(Key-Value Store:キーバリューストア)と同様であり、連想配列が実装された言語はデータの永続的な保存手段としてKVSとの相性が良い。