org.apache.commons.collections.bidimap
Class DualHashBidiMap<K,V>

java.lang.Object
  extended by org.apache.commons.collections.bidimap.AbstractDualBidiMap<K,V>
      extended by org.apache.commons.collections.bidimap.DualHashBidiMap<K,V>
All Implemented Interfaces:
Serializable, Map<K,V>, BidiMap<K,V>, IterableMap<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:
Commons Collections 3.0
Version:
$Id: DualHashBidiMap.java,v 1.1.1.1 2005/05/23 04:33:40 pents90 Exp $
Author:
Matthew Hawthorne, Matt Hall, John Watkinson, Stephen Colebourne
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.commons.collections.bidimap.AbstractDualBidiMap
AbstractDualBidiMap.BidiMapIterator<K,V>, AbstractDualBidiMap.EntrySet<K,V>, AbstractDualBidiMap.EntrySetIterator<K,V>, AbstractDualBidiMap.KeySet<K,V>, AbstractDualBidiMap.KeySetIterator<K,V>, AbstractDualBidiMap.MapEntry<K,V>, AbstractDualBidiMap.Values<K,V>, AbstractDualBidiMap.ValuesIterator<K,V>, AbstractDualBidiMap.View<K,V,E>
 
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K,V>
 
Field Summary
 
Fields inherited from class org.apache.commons.collections.bidimap.AbstractDualBidiMap
entrySet, forwardMap, inverseBidiMap, inverseMap, keySet, values
 
Constructor Summary
  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
protected
<K,V> BidiMap<K,V>
createBidiMap(Map<K,V> normalMap, Map<V,K> reverseMap, BidiMap<V,K> inverseBidiMap)
          Creates a new instance of this object.
 
Methods inherited from class org.apache.commons.collections.bidimap.AbstractDualBidiMap
clear, containsKey, containsValue, createEntrySetIterator, createKeySetIterator, createMap, 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
 

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 <K,V> BidiMap<K,V> createBidiMap(Map<K,V> normalMap,
                                           Map<V,K> reverseMap,
                                           BidiMap<V,K> 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 © 2005-2005 Apache Software Foundation, Matt Hall, John Watkinson. All Rights Reserved.