Bidirectional map

{{No footnotes|date=April 2015}}

In computer science, a bidirectional map is an associative data structure in which the (key, value) pairs form a one-to-one correspondence. Thus the binary relation is functional in each direction: each value can also be mapped to a unique key. A pair (a, b) thus provides a unique coupling between a and b so that b can be found when a is used as a key and a can be found when b is used as a key.

Mathematically, a bidirectional map can be defined a bijection f: X \to Y between two different sets of keys X and Y of equal cardinality, thus constituting an injective and surjective function:

\begin{cases}

& \forall x, x' \in X, f(x) = f(x') \Rightarrow x = x' \\

& \forall y \in Y, \exists x \in X : y=f(x)

\end{cases} \Rightarrow \exists f^{-1}(x)