Bidirectional map

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

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

{ x , x X , f ( x ) = f ( x ) x = x y Y , x X : y = f ( x ) f 1 ( x ) {\displaystyle {\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)}

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)


  • v
  • t
  • e