In computer science, an associative array, key-value store, 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. It supports 'lookup', 'remove', and 'insert' operations.
The dictionary problem is the classic problem of designing efficient data structures that implement associative arrays.The two major solutions to the dictionary problem are hash tables and search trees.It is sometimes also possible to solve the problem using directly addressed arrays, binary search trees, or other more specialized structures.