連想配列

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内, 検索

連想配列(れんそうはいれつ)とは、コンピュータプログラミングにおいて、添え字にスカラー数値以外のデータ型(文字列型等)も使用できる配列である。抽象データ型のひとつ。連想リスト連想コンテナ辞書とも呼ばれる。

歴史的には、最初に LISP連想リストとして広く認知された。その後、SNOBOLtable として、AWK で連想配列として実装したことで、その潜在能力がさらに広く知られるようになった。現在、Ruby など一部の言語では、添え字にはどのようなデータでも使えるものもある。

目次

[編集] データ構造

連想配列の実装に使われるデータ構造としては、主に平衡2分探索木赤黒木AVL木など)やハッシュテーブルがある。ほかにはB木連想リストなどが利用されることもある。

[編集] 連想配列を標準で提供する主な言語

  • AWK
  • C++ — 標準ライブラリのクラス std::map で提供(ハッシュではなく、二分木による実装。ライブラリによってはハッシュを使った std::hash_map を提供するものもある。次期標準である {{lang|en|C++11} では、std::unordered_map として標準化される。)
  • D言語
  • ECMAScript (JavaScript) - すべてのオブジェクトが、文字列が添え字の連想配列として扱われる
  • Icon
  • JavaJava Platform, Standard Edition標準パッケージのMapHashMapTreeMapLinkedHashMapHashtable で提供。その他 Apache Commons Collections などでも提供。
  • LISP — キーとデータで構成された cons セル[1]のリストを連想配列として(car部をキーにcdr部をデータ、またはその逆)として使う関数(assocrassoc)が提供されている。
  • Lua
  • .NET Framework - System.Collections.HashtableSystem.Collections.Specialized.ListDictionarySystem.Collections.Specialized.HybridDictionarySystem.Collections.Generic.Dictionary</code. にて提供。(ただし Dictionary は CLR 2.0 以降)
  • SNOBOL
  • PL/SQL — 結合配列 (Oracle Database 9i 以降)
  • PHP - 配列と連想配列の区別がない
  • Python — 「辞書型 (dictionary)」という名前で呼ばれる
  • Perl%で始まる変数が連想配列
  • REXX
  • Ruby — 組み込みのクラス Hash で提供
  • Smalltalk
  • Visual Basic
  • Visual Basic for Applications

[編集] 脚注

  1. ^ carcdrと呼ばれる二つデータが組になった、2-タプルのデータ構造

[編集] 関連項目

個人用ツール
名前空間
変種
操作
案内
ヘルプ
ツールボックス
他の言語