@GwtCompatible(emulated=true) public final class EnumHashBiMap<K extends Enum<K> extends ForwardingMap,V> <K ,V>
BiMap
backed by an
EnumMap
instance for keys-to-values, and a
HashMap
instance for values-to-keys. Null keys are not permitted, but null values are. An
EnumHashBiMap
and its inverse are both serializable.
See the Guava User Guide article on BiMap
.
ForwardingMap.StandardEntrySet , ForwardingMap.StandardKeySet , ForwardingMap.StandardValues
Modifier and Type | Method and Description |
---|---|
void |
clear()
|
boolean |
containsValue(Object
|
static <K extends Enum |
create(Class
Returns a new, empty
EnumHashBiMap using the specified key type.
|
static <K extends Enum |
create(Map
Constructs a new bimap with the same mappings as the specified map.
|
protected Map |
delegate()
Returns the backing delegate instance that methods are forwarded to.
|
Set |
entrySet()
|
V |
forcePut(K key, V value)
An alternate form of
put that silently removes any existing entry with the value
value before proceeding with the
BiMap operation.
|
BiMap |
inverse()
Returns the inverse view of this bimap, which maps each of this bimap's values to its associated key.
|
Set |
keySet()
|
Class |
keyType()
Returns the associated key type.
|
V |
put(K key, V value)
|
void |
putAll(Map
|
V |
remove(Object
|
Set |
values()
|
containsKey, equals, get, hashCode, isEmpty, size, standardClear, standardContainsKey, standardContainsValue, standardEquals, standardHashCode, standardIsEmpty, standardPutAll, standardRemove, standardToString
toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
compute, computeIfAbsent, computeIfPresent, containsKey, equals, forEach, get, getOrDefault, hashCode, isEmpty, merge, putIfAbsent, remove, replace, replace, replaceAll, size
public static <K extends Enum<K> ,V> EnumHashBiMap <K ,V> create(Class <K> keyType)
EnumHashBiMap
using the specified key type.
keyType
- the key type
public static <K extends Enum<K> ,V> EnumHashBiMap <K ,V> create(Map <K ,? extends V> map)
EnumHashBiMap
or an
EnumBiMap
, the new bimap has the same key type as the input bimap. Otherwise, the specified map must contain at least one mapping, in order to determine the key type.
map
- the map whose mappings are to be placed in this map
IllegalArgumentException
- if map is not an
EnumBiMap
or an
EnumHashBiMap
instance and contains no mappings
public V forcePut(K key, V value)
BiMap
put
that silently removes any existing entry with the value
value
before proceeding with the
BiMap.put(K, V)
operation. If the bimap previously contained the provided key-value mapping, this method has no effect.
Note that a successful call to this method could cause the size of the bimap to increase by one, stay the same, or even decrease by one.
Warning: If an existing entry with this value is removed, the key for that entry is discarded and not returned.
forcePut
in interface
BiMap<K extends Enum<K>,V>
key
- the key with which the specified value is to be associated
value
- the value to be associated with the specified key
null
, or
null
if there was no previous entry
protected Map<K ,V> delegate()
ForwardingObject
ForwardingSet.delegate()
. Concrete subclasses override this method to supply the instance being decorated.
public boolean containsValue(Objectvalue)
public V remove(Objectkey)
public void putAll(Map<? extends K ,? extends V> map)
BiMap
Warning: the results of calling this method may vary depending on the iteration order of map
.
public void clear()
public BiMap<V ,K> inverse()
BiMap
Note:There is no guaranteed correspondence between the iteration order of a bimap and that of its inverse.
public Set<K> keySet()
public Set<V> values()
BiMap
Because a bimap has unique values, this method returns a Set
, instead of the Collection
specified in the Map
interface.