Bidirectional map

From HandWiki

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→Y between two different sets of keys X and 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)