K - typ klíče mapyV - typ hodnoty mapypublic class BidirectionalMap<K,V>
extends java.lang.Object
HashMap), pro porovnání hodnot je to hash/== (viz
 IdentityHashMap). Tato mapa podporuje i iterátory klíčů a hodnot a
 také jejich read-only kolekce. Klíč ani hodnota však nesmějí být
 null.| Constructor and Description | 
|---|
| BidirectionalMap() | 
| Modifier and Type | Method and Description | 
|---|---|
| V | ensure(K key,
      java.util.function.Supplier<V> value)Zajistí přítomnost vztahu určeného poskytnutým klíčem. | 
| K | getKey(V value)Hledá klíč k hodnotě. | 
| V | getValue(K key)Hledá hodnotu ke klíči. | 
| java.util.Collection<K> | keys()Poskytne neměnitelnou kolekci klíčů. | 
| void | put(K key,
   V value)Vloží do kolekce vztah klíč->hodnota. | 
| void | removeKey(K key)Odstraní klíč a připojenou hodnotu z kolekce. | 
| void | removeValue(V value)Odstraní hodnotu a připojeným klíčem z kolekce. | 
| java.util.Collection<V> | values()Poskytne neměnitelnou kolekci hodnot. | 
public void put(K key, V value)
 Pokud v kolekci už takový klíč byl (čili existuje takové K k, pro
 které je pravdivý výraz k.equals(key)), je předchozí vztah z
 kolekce odstraněn (včetně zpětné vazby hodnota->klíč).
 
 Podobně, pokud existuje taková hodnota (tedy {code V v}, pro které je
 pravdivý výraz v == value) je i tento předchozí vztah odstraněn
 (včetně příslušného klíče).
 
To je důležitý rozdíl mezi touto a jinými mapami. Přidáním vztahu se obvykle buď zachová počet záznamů v mapě (protože klíč už existoval) nebo zvýší o (tento) jeden vztah. V této mapě však může dojít i ke snížení počtu, to kdyby i klíč i hodnota v kolekci již existovaly a nebyly spojeny mezi sebou (v takovém případě se odstraní dva staré vztahy a jeden nový vloží).
key - klíč vkládaného vztahu (duplicita je vyloučena pomocí
 objektové ekvivalence)value - hodnota vkládaného vztahu (duplicita je vyloučena pomocí
 referenční ekvivalence)public V ensure(K key, java.util.function.Supplier<V> value)
key - klíč vztahuvalue - dodavatel hodnoty v případě, že klíč dosud nebyl nalezenpublic V getValue(K key)
null.key - klíč, pro nějž se hledá hodnotanull, pokud nebyl klíč nalezen, nebo příslušnou hodnotupublic K getKey(V value)
null.value - hodnota, pro níž se hledá klíčnull, pokud nebyla hodnota nalezena, nebo příslušný klíčpublic void removeKey(K key)
key - klíč z odstraňovaného vztahupublic void removeValue(V value)
value - hodnota z odstraňovaného vztahupublic java.util.Collection<K> keys()
public java.util.Collection<V> values()