連想配列
出典: フリー百科事典『ウィキペディア(Wikipedia)』
連想配列(れんそうはいれつ)とは、コンピュータプログラミングにおいて、添え字にスカラー数値以外のデータ型(文字列型等)も使用できる配列である。抽象データ型のひとつ。連想リスト、連想コンテナ、辞書、ハッシュとも呼ばれる。
歴史的には、最初に LISP の連想リストとして広く認知された。その後、SNOBOL で table として、AWK で連想配列として実装したことで、その潜在能力がさらに広く知られるようになった。現在、Ruby など一部の言語では、添え字にはどのようなデータでも使えるものもある。
目次 |
データ構造 [編集]
連想配列の実装に使われるデータ構造としては、主に平衡2分探索木(赤黒木やAVL木など)やハッシュテーブルがある。ほかにはB木や連想リストなどが利用されることもある。
連想配列を標準で提供する主な言語 [編集]
- AWK
- C++ — 標準ライブラリのクラス
std::mapで提供(ハッシュではなく、二分木による実装。)ハッシュを使ったstd::unordered_mapも提供している。 - D言語
- ECMAScript (JavaScript) - すべてのオブジェクトが、文字列が添え字の連想配列として扱われる
- Icon
- Java — Java Platform, Standard Edition標準パッケージの
,Map,HashMap,TreeMap,LinkedHashMapで提供。その他 Apache Commons Collections などでも提供。Hashtable - LISP — キーとデータで構成された cons セル[1]のリストを連想配列として(
car部をキーにcdr部をデータ、またはその逆)として使う関数(assoc,rassoc)が提供されている。 - Lua
- .NET Framework -
System.Collections.Hashtable,System.Collections.Specialized.ListDictionary,System.Collections.Specialized.HybridDictionary,System.Collections.Generic.Dictionaryにて提供。(ただしDictionaryは CLR 2.0 以降) - SNOBOL
- PL/SQL — 結合配列 (Oracle Database 9i 以降)
- PHP - 配列と連想配列の区別がない
- Python — 「辞書型 (dictionary)」という名前で呼ばれる
- Perl —
%ではじまる変数が連想配列。要素には$hash{$key}としてアクセスする(通常の配列は@で宣言し、要素へは$array[$index]としてアクセス)。同言語で連想配列を(その実装から)「ハッシュ」と呼び始めたことから、「ハッシュ」が連想配列の別名として定着した。 - REXX
- Ruby — 組み込みのクラス
Hashで提供 - Smalltalk
- Visual Basic
- Visual Basic for Applications
脚注 [編集]
関連項目 [編集]
|
||||||||||||||||||||||||||||||||||||||||||||||