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
Implements BidiMap with 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:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Ensure serialization compatibility
      See Also:
  • Constructor Details

    • 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 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
    • readObject

      private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException
      Deserializes an instance from an ObjectInputStream.
      Parameters:
      in - The source ObjectInputStream.
      Throws:
      IOException - Any of the usual Input/Output related exceptions.
      ClassNotFoundException - A class of a serialized object cannot be found.
    • writeObject

      private void writeObject(ObjectOutputStream out) throws IOException
      Serializes this object to an ObjectOutputStream.
      Parameters:
      out - the target ObjectOutputStream.
      Throws:
      IOException - thrown when an I/O errors occur writing to the target stream.