Bidirectional map
In computer science, a bidirectional map is an associative data structure in which the  pairs form a one-to-one correspondence. Thus the binary relation is functional in each direction: each  can also be mapped to a unique . A pair  thus provides a unique coupling between  and  so that  can be found when  is used as a key and  can be found when  is used as a key. Mathematically, a bidirectional map can be defined a bijection  between two different sets of keys  and  of equal cardinality, thus constituting an injective and surjective function:

External links
 Boost.org
 Commons.apache.org
 Cablemodem.fibertel.com.ar (archived version)
 Codeproject.com
 BiMap in the Google Guava library
 bidict (bidirectional map implementation for Python)

Associative arrays