連想配列
出典: フリー百科事典『ウィキペディア(Wikipedia)』
連想配列(れんそうはいれつ)とは、プログラミング言語において、添え字に文字列等のスカラー数値以外のデータ型も使用できる配列である。抽象データ型のひとつ。連想コンテナ、辞書とも呼ばれる。
SNOBOLのtableが、AWKで連想配列として実装されたことで、その潜在能力が広く知られるようになった。Perlではハッシュ配列と呼ぶ。この名称は連想配列の内部実装(ハッシュテーブル)からきている。また、Pythonでは、辞書型と呼ぶ。
純OOPを志向するRubyでは、添え字に使えるオブジェクトは何でも使え(恐らくPythonも)、AWK時代のそれからは想像を越えた機能を持つこととなった。
[編集] 連想配列を標準で提供する主な言語
- AWK
- C++ - 標準ライブラリのクラスstd::mapで提供(ハッシュではなく、二分木による実装。ライブラリによってはハッシュを使ったstd::hash_mapを提供するものもある)
- ECMAScript (JavaScript) - すべてのオブジェクトが連想配列として扱われる
- Icon
- Java - 標準パッケージのjava.util.Map, java.util.HashMap, java.util.LinkedHashMap, java.util.TreeMap, java.util.Hashtable で提供。その他Jakarta Commons Collectionsでも提供。
- .NET - System.Collections.Hashtable, System.Collections.Generic.Dictionary にて提供。(ただし Dictionary は CLR 2.0 以降)
- LISP - car部をキー、cdr部をデータとしたconsセルのリストを連想配列に使え、そのためのassq系関数が提供されている。当然キーに制限はない。
- SNOBOL
- PL/SQL - 結合配列 (Oracle Database 9i 以降)
- PHP - 配列と連想配列の区別がない
- Python - 「辞書型 (dictionary)」という名前で呼ばれる
- Perl -
%
で始まる変数が連想配列 - Ruby - 組み込みのクラスHashで提供
- Smalltalk
- D言語