@GwtCompatible(emulated=true) public final class HashBiMap<K,V> extends AbstractMap<K,V> implements BiMap<K,V>, Serializable
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
.
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
Modifier and Type | Method and Description |
---|---|
void |
clear() |
boolean |
containsKey(Object key) |
boolean |
containsValue(Object value) |
static <K,V> HashBiMap<K,V> |
create()
Returns a new, empty
HashBiMap with the default initial capacity (16). |
static <K,V> HashBiMap<K,V> |
create(int expectedSize)
Constructs a new, empty bimap with the specified expected size.
|
static <K,V> HashBiMap<K,V> |
create(Map<? extends K,? extends V> map)
Constructs a new bimap containing initial values from
map . |
Set<Map.Entry<K,V>> |
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.put(K, V)
operation. |
void |
forEach(BiConsumer<? super K,? super V> action) |
V |
get(Object key) |
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() |
V |
put(K key,
V value) |
V |
remove(Object key) |
void |
replaceAll(BiFunction<? super K,? super V,? extends V> function) |
int |
size() |
Set<V> |
values() |
clone, equals, hashCode, isEmpty, putAll, toString
finalize, getClass, notify, notifyAll, wait, wait, wait
compute, computeIfAbsent, computeIfPresent, entrySet, equals, getOrDefault, hashCode, isEmpty, merge, putIfAbsent, remove, replace, replace
public static <K,V> HashBiMap<K,V> create()
HashBiMap
with the default initial capacity (16).public static <K,V> HashBiMap<K,V> create(int expectedSize)
expectedSize
- the expected number of entriesIllegalArgumentException
- if the specified expected size is negativepublic static <K,V> HashBiMap<K,V> create(Map<? extends K,? extends V> map)
map
. The bimap is created with an
initial capacity sufficient to hold the mappings in the specified map.public boolean containsKey(@Nullable Object key)
containsKey
in interface Map<K,V>
containsKey
in class AbstractMap<K,V>
public boolean containsValue(@Nullable Object value)
containsValue
in interface Map<K,V>
containsValue
in class AbstractMap<K,V>
public V forcePut(@Nullable K key, @Nullable 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,V>
key
- the key with which the specified value is to be associatedvalue
- the value to be associated with the specified keynull
, or null
if there was no previous entrypublic Set<V> values()
BiMap
Because a bimap has unique values, this method returns a Set
,
instead of the Collection
specified in the Map
interface.
public void forEach(BiConsumer<? super K,? super V> action)
public void replaceAll(BiFunction<? super K,? super V,? extends V> function)
replaceAll
in interface Map<K,V>
public BiMap<V,K> inverse()
BiMap
Note:There is no guaranteed correspondence between the iteration order of a bimap and that of its inverse.
Copyright © 2010-2017. All Rights Reserved.