java.lang.Object
java.util.AbstractMap<K,V>
com.google.common.collect.HashBiMap<K,V>
- All Implemented Interfaces:
BiMap<K,
V>, Serializable, Map<K, V>
@GwtCompatible
public final class HashBiMap<K extends @Nullable Object, V extends @Nullable Object>
extends AbstractMap<K,V>
implements BiMap<K,V>, Serializable
A
BiMap
backed by two hash tables. This implementation allows null keys and values. A
HashBiMap
and its inverse are both serializable.
This implementation guarantees insertion-based iteration order of its keys.
See the Guava User Guide article on BiMap
.
- Since:
- 2.0
- Author:
- Louis Wasserman, Mike Bostock
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class AbstractMap
AbstractMap.SimpleEntry<K,
V>, AbstractMap.SimpleImmutableEntry<K, V> -
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
boolean
containsKey
(@Nullable Object key) boolean
containsValue
(@Nullable Object value) Returnstrue
if this BiMap contains an entry whose value is equal tovalue
(or, equivalently, if this inverse view contains a key that is equal tovalue
).create()
Returns a new, emptyHashBiMap
with the default initial capacity (16).create
(int expectedSize) Constructs a new, empty bimap with the specified expected size.Constructs a new bimap containing initial values frommap
.entrySet()
An alternate form ofput
that silently removes any existing entry with the valuevalue
before proceeding with theBiMap.put(K, V)
operation.void
forEach
(BiConsumer<? super K, ? super V> action) inverse()
Returns the inverse view of this bimap, which maps each of this bimap's values to its associated key.keySet()
void
replaceAll
(BiFunction<? super K, ? super V, ? extends V> function) int
size()
values()
Methods inherited from interface Map
compute, computeIfAbsent, computeIfPresent, entrySet, equals, getOrDefault, hashCode, isEmpty, merge, putIfAbsent, remove, replace, replace
-
Method Details
-
create
-
create
public static <K extends @Nullable Object, V extends @Nullable Object> HashBiMap<K,V> create(int expectedSize) Constructs a new, empty bimap with the specified expected size.- Parameters:
expectedSize
- the expected number of entries- Throws:
IllegalArgumentException
- if the specified expected size is negative
-
create
-
containsKey
-
containsValue
Returnstrue
if this BiMap contains an entry whose value is equal tovalue
(or, equivalently, if this inverse view contains a key that is equal tovalue
).Due to the property that values in a BiMap are unique, this will tend to execute in faster-than-linear time.
- Specified by:
containsValue
in interfaceMap<K extends @Nullable Object, V extends @Nullable Object>
- Overrides:
containsValue
in classAbstractMap<K extends @Nullable Object, V extends @Nullable Object>
- Parameters:
value
- the object to search for in the values of this BiMap- Returns:
- true if a mapping exists from a key to the specified value
-
get
-
put
Description copied from interface:BiMap
-
forcePut
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
-
clear
-
size
-
keySet
-
values
Description copied from interface:BiMap
Because a bimap has unique values, this method returns a
Set
, instead of theCollection
specified in theMap
interface. -
forEach
-
replaceAll
-
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.
-
entrySet
-