|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public interface BidiMap<K,V>
Defines a map that allows bidirectional lookup between key and values.
This extendedMap represents a mapping where a key may
lookup a value and a value may lookup a key with equal ease.
This interface extends Map and so may be used anywhere a map
is required. The interface provides an inverse map view, enabling
full access to both directions of the BidiMap.
Implementations should allow a value to be looked up from a key and
a key to be looked up from a value with equal performance.
This map enforces the restriction that there is a 1:1 relation between
keys and values, meaning that multiple keys cannot map to the same value.
This is required so that "inverting" the map results in a map without
duplicate keys. See the put(K, V) method description for more information.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface java.util.Map |
|---|
Map.Entry<K,V> |
| Method Summary | |
|---|---|
K |
getKey(V value)
Gets the key that is currently mapped to the specified value. |
BidiMap<V,K> |
inverseBidiMap()
Gets a view of this map where the keys and values are reversed. |
MapIterator<K,V> |
mapIterator()
Obtains a MapIterator over the map. |
V |
put(K key,
V value)
Puts the key-value pair into the map, replacing any previous pair. |
K |
removeValue(V value)
Removes the key-value pair that is currently mapped to the specified value (optional operation). |
| Methods inherited from interface java.util.Map |
|---|
clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, putAll, remove, size, values |
| Method Detail |
|---|
MapIterator<K,V> mapIterator()
MapIterator over the map.
A map iterator is an efficient way of iterating over maps.
It does not require that the map is stored using Map Entry objects
which can increase performance.
BidiMap map = new DualHashBidiMap();
MapIterator it = map.mapIterator();
while (it.hasNext()) {
Object key = it.next();
Object value = it.getValue();
it.setValue("newValue");
}
mapIterator in interface IterableMap<K,V>
V put(K key,
V value)
BidiMap map1 = new DualHashBidiMap();
map.put("A","B"); // contains A mapped to B, as per Map
map.put("A","C"); // contains A mapped to C, as per Map
BidiMap map2 = new DualHashBidiMap();
map.put("A","B"); // contains A mapped to B, as per Map
map.put("C","B"); // contains C mapped to B, key A is removed
put in interface Map<K,V>key - the key to storevalue - the value to store
UnsupportedOperationException - if the put method is not supported
ClassCastException - (optional) if the map limits the type of the
value and the specified value is inappropriate
IllegalArgumentException - (optional) if the map limits the values
in some way and the value was invalid
NullPointerException - (optional) if the map limits the values to
non-null and null was specifiedK getKey(V value)
null is returned.
Implementations should seek to make this method perform equally as well
as get(Object).
value - the value to find the key for
null if not found
ClassCastException - (optional) if the map limits the type of the
value and the specified value is inappropriate
NullPointerException - (optional) if the map limits the values to
non-null and null was specifiedK removeValue(V value)
null is returned.
Implementations should seek to make this method perform equally as well
as remove(Object).
value - the value to find the key-value pair for
null if nothing removed
ClassCastException - (optional) if the map limits the type of the
value and the specified value is inappropriate
NullPointerException - (optional) if the map limits the values to
non-null and null was specified
UnsupportedOperationException - if this method is not supported
by the implementationBidiMap<V,K> inverseBidiMap()
Map.
Implementations should seek to avoid creating a new object every time this
method is called. See AbstractMap.values() etc. Calling this
method on the inverse map should return the original.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||