## com.google.common.collect
Class EnumHashBiMap<K extends Enum<K>,V>

    java.lang.Object
      com.google.common.collect.ForwardingObject
          com.google.common.collect.ForwardingMap<K,V>
              com.google.common.collect.EnumHashBiMap<K,V>

All Implemented Interfaces:
  BiMap<K,V>, Serializable, Map<K,V>

    @GwtCompatible(emulated=true)
    public final class EnumHashBiMap<K extends Enum<K>,V>

extends ForwardingMap<K,V>

A `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`.

Since:
  2.0 (imported from Google Collections Library)
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`

Nested classes/interfaces inherited from interface java.util.Map
`Map.Entry<K,V>`

Method Summary
`void` `clear()`
`boolean` `containsValue(Object value)`

`static

`<K extends Enum<K>,V> EnumHashBiMap<K,V>`

`

`create(Class<K> keyType)`
Returns a new, empty `EnumHashBiMap` using the specified key type.

`static

`<K extends Enum<K>,V> EnumHashBiMap<K,V>`

`

`create(Map<K,? extends V> map)`
Constructs 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 of `put` that silently removes any existing entry with the value `value` before proceeding with the `BiMap.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)`
`Set<V>` `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`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Methods inherited from interface java.util.Map
`containsKey, equals, get, hashCode, isEmpty, size`

Method Detail

### create

    public static <K extends Enum<K>,V> EnumHashBiMap<K,V> create(Class<K> keyType)

  Returns a new, empty `EnumHashBiMap` using the specified key type.

  Parameters:
    `keyType` - the key type

### create

    public static <K extends Enum<K>,V> EnumHashBiMap<K,V> create(Map<K,? extends V> map)

  Constructs a new bimap with the same mappings as the specified map. If the specified map is an `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.

  Parameters:
    `map` - the map whose mappings are to be placed in this map
  Throws:
    `IllegalArgumentException` - if map is not an `EnumBiMap` or an `EnumHashBiMap` instance and contains no mappings

### put

    public V put(K key,
                 @Nullable
                 V value)

  Description copied from interface: `BiMap`

  Specified by:
    `put` in interface `BiMap<K extends Enum<K>,V>`
  Specified by:
    `put` in interface `Map<K extends Enum<K>,V>`

### forcePut

    public V forcePut(K key,
                      @Nullable
                      V value)

  Description copied from interface: `BiMap`
  An alternate form of `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.

  Specified by:
    `forcePut` in interface `BiMap<K extends Enum<K>,V>`
  Parameters:
    `key` - the key with which the specified value is to be associated
    `value` - the value to be associated with the specified key
  Returns:
    the value which was previously associated with the key, which may be `null`, or `null` if there was no previous entry

### keyType

    public Class<K> keyType()

  Returns the associated key 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 as `ForwardingSet.delegate()`. Concrete subclasses override this method to supply the instance being decorated.

  Specified by:
    `delegate` in class `ForwardingMap<K,V>`

### containsValue

    public boolean containsValue(Object value)

  Specified by:
    `containsValue` in interface `Map<K,V>`
  Overrides:
    `containsValue` in class `ForwardingMap<K,V>`

### remove

    public V remove(Object key)

  Specified by:
    `remove` in interface `Map<K,V>`
  Overrides:
    `remove` in class `ForwardingMap<K,V>`

### 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`.

  Specified by:
    `putAll` in interface `BiMap<K,V>`
  Specified by:
    `putAll` in interface `Map<K,V>`
  Overrides:
    `putAll` in class `ForwardingMap<K,V>`

### clear

    public void clear()

  Specified by:
    `clear` in interface `Map<K,V>`
  Overrides:
    `clear` in class `ForwardingMap<K,V>`

### 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.

  Specified by:
    `inverse` in interface `BiMap<K,V>`
  Returns:
    the inverse view of this bimap

### keySet

    public Set<K> keySet()

  Specified by:
    `keySet` in interface `Map<K,V>`
  Overrides:
    `keySet` in class `ForwardingMap<K,V>`

### values

    public Set<V> values()

  Description copied from interface: `BiMap`

  Because a bimap has unique values, this method returns a `Set`, instead of the `Collection` specified in the `Map` interface.

  Specified by:
    `values` in interface `BiMap<K,V>`
  Specified by:
    `values` in interface `Map<K,V>`
  Overrides:
    `values` in class `ForwardingMap<K,V>`

### entrySet

    public Set<Map.Entry<K,V>> entrySet()

  Specified by:
    `entrySet` in interface `Map<K,V>`
  Overrides:
    `entrySet` in class `ForwardingMap<K,V>`

Copyright © 2010-2012. All Rights Reserved.