Package com.google.common.collect
Class EnumBiMap<K extends Enum<K>,V extends Enum<V>>
- java.lang.Object
-
- com.google.common.collect.ForwardingObject
-
- com.google.common.collect.ForwardingMap<K,V>
-
- com.google.common.collect.EnumBiMap<K,V>
-
- All Implemented Interfaces:
BiMap<K,V>
,Serializable
,Map<K,V>
@GwtCompatible(emulated=true) public final class EnumBiMap<K extends Enum<K>,V extends Enum<V>> extends ForwardingMap<K,V>
ABiMap
backed by twoEnumMap
instances. Null keys and values are not permitted. AnEnumBiMap
and its inverse are both serializable.See the Guava User Guide article on
BiMap
.- Since:
- 2.0
- Author:
- Mike Bostock
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.google.common.collect.ForwardingMap
ForwardingMap.StandardEntrySet, ForwardingMap.StandardKeySet, ForwardingMap.StandardValues
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
boolean
containsValue(Object value)
static <K extends Enum<K>,V extends Enum<V>>
EnumBiMap<K,V>create(Class<K> keyType, Class<V> valueType)
Returns a new, emptyEnumBiMap
using the specified key and value types.static <K extends Enum<K>,V extends Enum<V>>
EnumBiMap<K,V>create(Map<K,V> map)
Returns a new bimap with the same mappings as the specified map.protected Map<K,V>
delegate()
Returns the backing delegate instance that methods are forwarded to.Set<Map.Entry<K,V>>
entrySet()
V
forcePut(K key, V value)
An alternate form ofput
that silently removes any existing entry with the valuevalue
before proceeding with theBiMap.put(K, V)
operation.BiMap<V,K>
inverse()
Returns the inverse view of this bimap, which maps each of this bimap's values to its associated key.Set<K>
keySet()
Class<K>
keyType()
Returns the associated key type.V
put(K key, V value)
void
putAll(Map<? extends K,? extends V> map)
V
remove(Object key)
void
replaceAll(BiFunction<? super K,? super V,? extends V> function)
Set<V>
values()
Class<V>
valueType()
Returns the associated value type.-
Methods inherited from class com.google.common.collect.ForwardingMap
containsKey, equals, get, hashCode, isEmpty, size, standardClear, standardContainsKey, standardContainsValue, standardEquals, standardHashCode, standardIsEmpty, standardPutAll, standardRemove, standardToString
-
Methods inherited from class com.google.common.collect.ForwardingObject
toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, containsKey, equals, forEach, get, getOrDefault, hashCode, isEmpty, merge, putIfAbsent, remove, replace, replace, size
-
-
-
-
Method Detail
-
create
public static <K extends Enum<K>,V extends Enum<V>> EnumBiMap<K,V> create(Class<K> keyType, Class<V> valueType)
Returns a new, emptyEnumBiMap
using the specified key and value types.- Parameters:
keyType
- the key typevalueType
- the value type
-
create
public static <K extends Enum<K>,V extends Enum<V>> EnumBiMap<K,V> create(Map<K,V> map)
Returns a new bimap with the same mappings as the specified map. If the specified map is anEnumBiMap
, the new bimap has the same types as the provided map. Otherwise, the specified map must contain at least one mapping, in order to determine the key and value types.- Parameters:
map
- the map whose mappings are to be placed in this map- Throws:
IllegalArgumentException
- if map is not anEnumBiMap
instance and contains no mappings
-
keyType
@GwtIncompatible public Class<K> keyType()
Returns the associated key type.
-
valueType
@GwtIncompatible public Class<V> valueType()
Returns the associated value type.
-
delegate
protected Map<K,V> delegate()
Description copied from class:ForwardingObject
Returns the backing delegate instance that methods are forwarded to. Abstract subclasses generally override this method with an abstract method that has a more specific return type, such asForwardingSet.delegate()
. Concrete subclasses override this method to supply the instance being decorated.
-
containsValue
public boolean containsValue(@CheckForNull Object value)
- Specified by:
containsValue
in interfaceMap<K extends @Nullable Object,V extends @Nullable Object>
- Overrides:
containsValue
in classForwardingMap<K extends @Nullable Object,V extends @Nullable Object>
-
put
@CanIgnoreReturnValue @CheckForNull public V put(K key, V value)
Description copied from interface:BiMap
-
forcePut
@CanIgnoreReturnValue @CheckForNull public V forcePut(K key, V value)
Description copied from interface:BiMap
An alternate form ofput
that silently removes any existing entry with the valuevalue
before proceeding with theBiMap.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.
- Specified by:
forcePut
in interfaceBiMap<K extends @Nullable Object,V extends @Nullable Object>
- Parameters:
key
- the key with which the specified value is to be associatedvalue
- the value to be associated with the specified key- Returns:
- the value that was previously associated with the key, or
null
if there was no previous entry. (If the bimap contains null values, thenforcePut
, likeput
, returnsnull
both if the key is absent and if it is present with a null value.)
-
remove
@CanIgnoreReturnValue @CheckForNull public V remove(@CheckForNull Object key)
-
putAll
public void putAll(Map<? extends K,? extends V> map)
Description copied from interface:BiMap
Warning: the results of calling this method may vary depending on the iteration order of
map
.
-
replaceAll
public void replaceAll(BiFunction<? super K,? super V,? extends V> function)
-
clear
public void clear()
-
inverse
public BiMap<V,K> inverse()
Description copied from interface:BiMap
Returns the inverse view of this bimap, which maps each of this bimap's values to its associated key. The two bimaps are backed by the same data; any changes to one will appear in the other.Note:There is no guaranteed correspondence between the iteration order of a bimap and that of its inverse.
-
keySet
public Set<K> keySet()
-
values
public Set<V> values()
Description copied from interface:BiMap
Because a bimap has unique values, this method returns a
Set
, instead of theCollection
specified in theMap
interface.
-
-