org.apache.commons.collections4.bidimap

## Class DualHashBidiMap<K,V>

- java.lang.Object
- - org.apache.commons.collections4.bidimap.AbstractDualBidiMap<K,V>
  - - org.apache.commons.collections4.bidimap.DualHashBidiMap<K,V>

- Type Parameters:
    `K` - the type of the keys in the map
    `V` - the type of the values in the map
  All Implemented Interfaces:
    Serializable, Map<K,V>, BidiMap<K,V>, Get<K,V>, IterableGet<K,V>, IterableMap<K,V>, Put<K,V>

      public class DualHashBidiMap<K,V>
      extends AbstractDualBidiMap<K,V>
      implements Serializable

  Implementation of `BidiMap` that uses two `HashMap` instances.

  Two `HashMap` instances are used in this class. This provides fast lookups at the expense of storing two sets of map entries. Commons Collections would welcome the addition of a direct hash-based implementation of the `BidiMap` interface.

  NOTE: From Commons Collections 3.1, all subclasses will use `HashMap` and the flawed `createMap` method is ignored.

  Since:
    3.0
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.commons.collections4.bidimap.AbstractDualBidiMap

      `AbstractDualBidiMap.BidiMapIterator<K,V>, AbstractDualBidiMap.EntrySet<K,V>, AbstractDualBidiMap.EntrySetIterator<K,V>, AbstractDualBidiMap.KeySet<K>, AbstractDualBidiMap.KeySetIterator<K>, AbstractDualBidiMap.MapEntry<K,V>, AbstractDualBidiMap.Values<V>, AbstractDualBidiMap.ValuesIterator<V>, AbstractDualBidiMap.View<K,V,E>`

    - ### Nested classes/interfaces inherited from interface java.util.Map

      `Map.Entry<K,V>`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `DualHashBidiMap()` Creates an empty `HashBidiMap`.
    `` | `DualHashBidiMap(Map<? extends K,? extends V> map)` Constructs a `HashBidiMap` and copies the mappings from specified `Map`.
    `protected` | `DualHashBidiMap(Map<K,V> normalMap, Map<V,K> reverseMap, BidiMap<V,K> inverseBidiMap)` Constructs a `HashBidiMap` that decorates the specified maps.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected BidiMap<V,K>` | `createBidiMap(Map<V,K> normalMap, Map<K,V> reverseMap, BidiMap<K,V> inverseBidiMap)` Creates a new instance of this object.

    - ### Methods inherited from class org.apache.commons.collections4.bidimap.AbstractDualBidiMap

      `clear, containsKey, containsValue, createEntrySetIterator, createKeySetIterator, createValuesIterator, entrySet, equals, get, getKey, hashCode, inverseBidiMap, isEmpty, keySet, mapIterator, put, putAll, remove, removeValue, size, toString, values`

    - ### 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, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll`

- - ### Constructor Detail

    - #### DualHashBidiMap

          public DualHashBidiMap()

      Creates an empty `HashBidiMap`.

    - #### DualHashBidiMap

          public DualHashBidiMap(Map<? extends K,? extends V> map)

      Constructs a `HashBidiMap` and copies the mappings from specified `Map`.
      Parameters:
        `map` - the map whose mappings are to be placed in this map

    - #### DualHashBidiMap

          protected DualHashBidiMap(Map<K,V> normalMap,
                                    Map<V,K> reverseMap,
                                    BidiMap<V,K> inverseBidiMap)

      Constructs a `HashBidiMap` that decorates the specified maps.
      Parameters:
        `normalMap` - the normal direction map
        `reverseMap` - the reverse direction map
        `inverseBidiMap` - the inverse BidiMap

  - ### Method Detail

    - #### createBidiMap

          protected BidiMap<V,K> createBidiMap(Map<V,K> normalMap,
                                               Map<K,V> reverseMap,
                                               BidiMap<K,V> inverseBidiMap)

      Creates a new instance of this object.
      Specified by:
        `createBidiMap` in class `AbstractDualBidiMap<K,V>`
      Parameters:
        `normalMap` - the normal direction map
        `reverseMap` - the reverse direction map
        `inverseBidiMap` - the inverse BidiMap
      Returns:
        new bidi map

Copyright © 2001–2018 The Apache Software Foundation. All rights reserved.