"Dictionary (data structure)" redirects here. Not to be confused with data dictionary.
"Associative container" redirects here. For their C++ implementation, see associative containers (C++).
"Map (computer science)" redirects here. For the higher-order function, see Map (higher-order function).
"Associative table" redirects here. For the relation used in database systems to resolve many-to-many relationship, see Associative entity.
In computer science, an associative array, map, symbol table, or dictionary is an abstract data type that stores a collection of (key, value) pairs, such that each possible key appears at most once in the collection. In mathematical terms, an associative array is a function with finite domain.[1] It supports 'lookup', 'remove', and 'insert' operations.
The dictionary problem is the classic problem of designing efficient data structures that implement associative arrays.[2]
The two major solutions to the dictionary problem are hash tables and search trees.[3][4][5][6]
It is sometimes also possible to solve the problem using directly addressed arrays, binary search trees, or other more specialized structures.
Many programming languages include associative arrays as primitive data types, while many other languages provide software libraries that support associative arrays. Content-addressable memory is a form of direct hardware-level support for associative arrays.
Associative arrays have many applications including such fundamental programming patterns as memoization and the decorator pattern.[7]
The name does not come from the associative property known in mathematics. Rather, it arises from the association of values with keys. It is not to be confused with associative processors.
^Collins, Graham; Syme, Donald (1995). "A theory of finite maps". Higher Order Logic Theorem Proving and Its Applications. Lecture Notes in Computer Science. 971: 122–137. doi:10.1007/3-540-60275-5_61. ISBN 978-3-540-60275-0.
^Andersson, Arne (1989). "Optimal Bounds on the Dictionary Problem". Proc. Symposium on Optimal Algorithms. Lecture Notes in Computer Science. 401. Springer Verlag: 106–114. doi:10.1007/3-540-51859-2_10. ISBN 978-3-540-51859-4.
^Cite error: The named reference gt was invoked but never defined (see the help page).
^Cite error: The named reference ms was invoked but never defined (see the help page).
^Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2001), "11 Hash Tables", Introduction to Algorithms (2nd ed.), MIT Press and McGraw-Hill, pp. 221–252, ISBN 0-262-03293-7.
^Dietzfelbinger, M., Karlin, A., Mehlhorn, K., Meyer auf der Heide, F., Rohnert, H., and Tarjan, R. E. 1994.
"Dynamic Perfect Hashing: Upper and Lower Bounds" Archived 2016-03-04 at the Wayback Machine.
SIAM J. Comput. 23, 4 (Aug. 1994), 738-761.
http://portal.acm.org/citation.cfm?id=182370
doi:10.1137/S0097539791194094
In computer science, an associativearray, map, symbol table, or dictionary is an abstract data type that stores a collection of (key, value) pairs, such...
a hash map or a hash set, is a data structure that implements an associativearray, also called a dictionary, which is an abstract data type that maps...
a programming language to specify a variable that can be indexed Associativearray, an abstract data structure model composed of key-value pairs, often...
also associative, but multiplication of octonions is non-associative. The greatest common divisor and least common multiple functions act associatively. gcd...
encodes scalars (such as strings, integers, and floats), lists, and associativearrays (also known as maps, dictionaries or hashes). These data types are...
In computer science, a Judy array is a data structure implementing a type of associativearray with high performance and low memory usage. Unlike most...
A hash array mapped trie (HAMT) is an implementation of an associativearray that combines the characteristics of a hash table and an array mapped trie...
with a tag specifying which type the data is Container List Tuple Associativearray, Map Multimap Set Multiset (bag) Stack Queue (example Priority queue)...
a function object parameter) if F has no attached array values then allocate an associativearray called values; attach values to F; end if; if F.values[arguments]...
in an associativearray Index (typography), a character in Unicode, its code is 132 Index, the dataset maintained by search engine indexing Array index...
Boas priority queue, is a tree data structure which implements an associativearray with m-bit integer keys. It was invented by a team led by Dutch computer...
provides a set of common classes for C++, such as containers and associativearrays, that can be used with any built-in type and with any user-defined...
storage immediately, and restored the next time the client starts. Associativearrays map keys to values. Keys and values can contain up to 4 GiB of data...
unique key in an associativearray. Applications of reverse lookup include reverse DNS lookup, which provides the domain name associated with a particular...
a binary form for representing simple data structures like arrays and associativearrays. MessagePack aims to be as compact and simple as possible. The...
dynamic array int da[]; // dynamic array int ai[int]; // associativearray, indexed by int int as[string]; // associativearray, indexed by string int qa[$];...
at the head, until the key is found. Associative lists provide a simple way of implementing an associativearray, but are efficient only when the number...
also be defined in place of lookup tables for these calculations. Associativearray Branch table Gal's accurate tables Memoization Memory-bound function...