Bidirectional map
In computer science, a bidirectional map is an associative data structure in which the [math]\displaystyle{ (key, value) }[/math] pairs form a one-to-one correspondence. Thus the binary relation is functional in each direction: each [math]\displaystyle{ value }[/math] can also be mapped to a unique [math]\displaystyle{ key }[/math]. A pair [math]\displaystyle{ (a, b) }[/math] thus provides a unique coupling between [math]\displaystyle{ a }[/math] and [math]\displaystyle{ b }[/math] so that [math]\displaystyle{ b }[/math] can be found when [math]\displaystyle{ a }[/math] is used as a key and [math]\displaystyle{ a }[/math] can be found when [math]\displaystyle{ b }[/math] is used as a key.
Mathematically, a bidirectional map can be defined a bijection [math]\displaystyle{ f: X \to Y }[/math] between two different sets of keys [math]\displaystyle{ X }[/math] and [math]\displaystyle{ Y }[/math] of equal cardinality, thus constituting an injective and surjective function:
[math]\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) }[/math]
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)
Original source: https://en.wikipedia.org/wiki/Bidirectional map.
Read more |