Package org.apache.commons.collections4.bidimap

# Class DualLinkedHashBidiMap<K,V>

java.lang.Object
org.apache.commons.collections4.bidimap.AbstractDualBidiMap<K,V>
org.apache.commons.collections4.bidimap.DualLinkedHashBidiMap<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 DualLinkedHashBidiMap<K,V> extends AbstractDualBidiMap<K,V> implements Serializable
Implements `BidiMap` with two `LinkedHashMap` instances.

Two `LinkedHashMap` instances are used in this class. This provides fast lookups at the expense of storing two sets of map entries and two linked lists.

Since:
  4.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 extends Object,V extends Object>`

- ## Constructor Summary

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

- ## Method Summary

  Modifier and Type
  Method
  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 Details

  - ### DualLinkedHashBidiMap

    public DualLinkedHashBidiMap()
    Creates an empty `HashBidiMap`.

  - ### DualLinkedHashBidiMap

    public DualLinkedHashBidiMap(Map<? extends K,? extends V> map)
    Constructs a `LinkedHashBidiMap` and copies the mappings from specified `Map`.
    Parameters:
      `map` - the map whose mappings are to be placed in this map

  - ### DualLinkedHashBidiMap

    protected DualLinkedHashBidiMap(Map<K,V> normalMap, Map<V,K> reverseMap, BidiMap<V,K> inverseBidiMap)
    Constructs a `LinkedHashBidiMap` that decorates the specified maps.
    Parameters:
      `normalMap` - the normal direction map
      `reverseMap` - the reverse direction map
      `inverseBidiMap` - the inverse BidiMap

- ## Method Details

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