In a Map we can lookup for a value by using a distinct key. In a Map
with reverse view and lookup, even the values are distinct. So there
is one to one mapping between keys and values and vice version.
If we enable this constraint on a Map then we can look up a key by
its value. Such data structure is called bi-directional map.
There is no built data structure similar to reverse lookup Map in
JDK.
But Apache Common Collections and Guava libraries provide
implementation of bidirectional map. It is called BidiMap and
BiMap. Both of these data structure enforce the constraint of one to
one mapping between keys and values.