Package com.google.common.collect
Class EnumHashBiMap<K extends java.lang.Enum<K>,V>
- java.lang.Object
-
- com.google.common.collect.ForwardingObject
-
- com.google.common.collect.ForwardingMap<K,V>
-
- com.google.common.collect.AbstractBiMap<K,V>
-
- com.google.common.collect.EnumHashBiMap<K,V>
-
- All Implemented Interfaces:
BiMap<K,V>
,java.io.Serializable
,java.util.Map<K,V>
public final class EnumHashBiMap<K extends java.lang.Enum<K>,V> extends AbstractBiMap<K,V>
ABiMap
backed by anEnumMap
instance for keys-to-values, and aHashMap
instance for values-to-keys. Null keys are not permitted, but null values are. AnEnumHashBiMap
and its inverse are both serializable.See the Guava User Guide article on
BiMap
.- Since:
- 2.0
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.google.common.collect.AbstractBiMap
AbstractBiMap.BiMapEntry, AbstractBiMap.Inverse<K,V>
-
Nested classes/interfaces inherited from class com.google.common.collect.ForwardingMap
ForwardingMap.StandardEntrySet, ForwardingMap.StandardKeySet, ForwardingMap.StandardValues
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Class<K>
keyType
private static long
serialVersionUID
-
Fields inherited from class com.google.common.collect.AbstractBiMap
inverse
-
-
Constructor Summary
Constructors Modifier Constructor Description private
EnumHashBiMap(java.lang.Class<K> keyType)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) K
checkKey(K key)
Returns its input, or throws an exception if this is not a valid key.static <K extends java.lang.Enum<K>,V>
EnumHashBiMap<K,V>create(java.lang.Class<K> keyType)
Returns a new, emptyEnumHashBiMap
using the specified key type.static <K extends java.lang.Enum<K>,V>
EnumHashBiMap<K,V>create(java.util.Map<K,? extends V> map)
Constructs a new bimap with the same mappings as the specified map.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.java.lang.Class<K>
keyType()
Returns the associated key type.V
put(K key, V value)
private void
readObject(java.io.ObjectInputStream stream)
private void
writeObject(java.io.ObjectOutputStream stream)
-
Methods inherited from class com.google.common.collect.AbstractBiMap
checkValue, clear, containsValue, delegate, entrySet, entrySetIterator, inverse, keySet, makeInverse, putAll, remove, replaceAll, setDelegates, setInverse, values
-
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
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
EnumHashBiMap
private EnumHashBiMap(java.lang.Class<K> keyType)
-
-
Method Detail
-
create
public static <K extends java.lang.Enum<K>,V> EnumHashBiMap<K,V> create(java.lang.Class<K> keyType)
Returns a new, emptyEnumHashBiMap
using the specified key type.- Parameters:
keyType
- the key type
-
create
public static <K extends java.lang.Enum<K>,V> EnumHashBiMap<K,V> create(java.util.Map<K,? extends V> map)
Constructs a new bimap with the same mappings as the specified map. If the specified map is anEnumHashBiMap
or anEnumBiMap
, 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.- Parameters:
map
- the map whose mappings are to be placed in this map- Throws:
java.lang.IllegalArgumentException
- if map is not anEnumBiMap
or anEnumHashBiMap
instance and contains no mappings
-
checkKey
K checkKey(K key)
Description copied from class:AbstractBiMap
Returns its input, or throws an exception if this is not a valid key.- Overrides:
checkKey
in classAbstractBiMap<K extends java.lang.Enum<K>,V>
-
forcePut
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 java.lang.Enum<K>,V>
- Overrides:
forcePut
in classAbstractBiMap<K extends java.lang.Enum<K>,V>
- 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 which was previously associated with the key, which may be
null
, ornull
if there was no previous entry
-
keyType
public java.lang.Class<K> keyType()
Returns the associated key type.
-
writeObject
private void writeObject(java.io.ObjectOutputStream stream) throws java.io.IOException
- Throws:
java.io.IOException
-
readObject
private void readObject(java.io.ObjectInputStream stream) throws java.io.IOException, java.lang.ClassNotFoundException
- Throws:
java.io.IOException
java.lang.ClassNotFoundException
-
-