プログラミング/連想配列
- 概要
連想配列とは、キーと値のペアで構成されるデータ構造の一種であり、キーを使って値を検索することができます。プログラミングにおいては、配列やリストと同様によく使用されます。
- 歴史
連想配列は、最初にLISPの連想リストとして定義され、次にSNOBOLのTABLEが続きます。有名なところではUNIXのAWKが比較的初期の実装です。 スクリプティング言語を含むインタープリタ言語では、変数→値の仕組みがそのまま連想配列のインフラストラクチャに使えるので(BASICのような例外はあるものの)殆どの言語がサポートしています。
- プログラミング言語の例と類似のデータ構造
- Python
Pythonでは、連想配列は「辞書(dict)」と呼ばれます。以下は、辞書を作成し、キーと値を追加する方法の例です。
my_dict = {'key1': 'value1', 'key2': 'value2'} my_dict['key3'] = 'value3' # キー 'key3' に値 'value3' を追加
また、キーの存在を確認するためには、in演算子を使用できます。
if 'key1' in my_dict: print('key1が存在します')
- Java
Javaでは、連想配列は「マップ(Map)」と呼ばれます。以下は、マップを作成し、キーと値を追加する方法の例です。
var myMap = new HashMap<String, String>(); myMap.put("key1", "value1"); myMap.put("key2", "value2"); myMap.put("key3", "value3"); System.out.println(myMap.get("key1"));
キーの存在を確認するためには、containsKeyメソッドを使用できます。
if (myMap.containsKey("key3")) { System.out.println("key3が存在します"); }
- JavaScript
JavaScriptでは、連想配列は「オブジェクト(Object)」と呼ばれます。以下は、オブジェクトを作成し、キーと値を追加する方法の例です。
const myObj = { key1: "value1", key2: "value2" }; myObj.key3 = "value3"; // キー 'key3' に値 'value3' を追加
キーの存在を確認するためには、hasOwnPropertyメソッドを使用できます。
if (myObj.hasOwnProperty("key1")) { console.log("key1が存在します"); }
類似のデータ構造としては、配列やマップ、セット、キューなどがあります。
これらは、それぞれ異なる用途に使用され、連想配列と同様に多くのプログラミング言語で利用されています。
例えば、配列は、複数の要素を保持し、添字をつかって要素を参照します。
マップは、キーと値のペアを格納するデータ構造であり、キーが一意であることを保証します。
セットは、一意な要素を格納するデータ構造であり、重複する要素を持つことはできません。
キューは、先入れ先出し(FIFO)のデータ構造であり、要素を追加するときは末尾に、取り出すときは先頭から取り出します。