org.apache.commons.collections
Class MultiHashMap

java.lang.Object
  |
  +--java.util.AbstractMap
        |
        +--java.util.HashMap
              |
              +--org.apache.commons.collections.MultiHashMap
All Implemented Interfaces:
Cloneable, Map, MultiMap, Serializable

public class MultiHashMap
extends HashMap
implements MultiMap

MultiHashMap is the default implementation of the MultiMap interface.

A MultiMap is a Map with slightly different semantics. Putting a value into the map will add the value to a Collection at that key. Getting a value will always return a Collection, holding all the values put to that key. This implementation uses an ArrayList as the collection.

For example:

 MultiMap mhm = new MultiHashMap();
 mhm.put(key, "A");
 mhm.put(key, "B");
 mhm.put(key, "C");
 Collection coll = mhm.get(key);

coll will be a list containing "A", "B", "C".

Since:
Commons Collections 2.0
Version:
$Revision: 1.14 $ $Date: 2004/01/14 21:43:03 $
Author:
Christopher Berry, James Strachan, Steve Downey, Stephen Colebourne, Julien Buret, Serhiy Yevtushenko
See Also:
Serialized Form

Inner classes inherited from class java.util.Map
Map.Entry
 
Constructor Summary
MultiHashMap()
          Constructor.
MultiHashMap(int initialCapacity)
          Constructor.
MultiHashMap(int initialCapacity, float loadFactor)
          Constructor.
MultiHashMap(Map mapToCopy)
          Constructor.
 
Method Summary
 void clear()
          Clear the map.
 Object clone()
          Clone the map.
 boolean containsValue(Object value)
          Does the map contain a specific value.
protected  Collection createCollection(Collection coll)
          Creates a new instance of the map value Collection container.
 Object put(Object key, Object value)
          Put a key and value into the map.
 Object remove(Object key, Object item)
          Removes a specific value from map.
 Collection values()
          Gets a view over all the values in the map.
 
Methods inherited from class java.util.HashMap
containsKey, entrySet, get, isEmpty, keySet, putAll, remove, size
 
Methods inherited from class java.util.AbstractMap
equals, hashCode, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Map
containsKey, entrySet, equals, get, hashCode, isEmpty, keySet, putAll, remove, size
 

Constructor Detail

MultiHashMap

public MultiHashMap()
Constructor.

MultiHashMap

public MultiHashMap(int initialCapacity)
Constructor.
Parameters:
initialCapacity - the initial map capacity

MultiHashMap

public MultiHashMap(int initialCapacity,
                    float loadFactor)
Constructor.
Parameters:
initialCapacity - the initial map capacity
loadFactor - the amount 0.0-1.0 at which to resize the map

MultiHashMap

public MultiHashMap(Map mapToCopy)
Constructor.
Parameters:
mapToCopy - a Map to copy
Method Detail

put

public Object put(Object key,
                  Object value)
Put a key and value into the map.

The value is added to a collection mapped to the key instead of replacing the previous value.

Specified by:
put in interface Map
Overrides:
put in class HashMap
Parameters:
key - the key to set
value - the value to set the key to
Returns:
the value added if the add is successful, null otherwise

containsValue

public boolean containsValue(Object value)
Does the map contain a specific value.

This searches the collection mapped to each key, and thus could be slow.

Specified by:
containsValue in interface Map
Overrides:
containsValue in class HashMap
Parameters:
value - the value to search for
Returns:
true if the list contains the value

remove

public Object remove(Object key,
                     Object item)
Removes a specific value from map.

The item is removed from the collection mapped to the specified key.

Specified by:
remove in interface MultiMap
Parameters:
key - the key to remove from
item - the value to remove
Returns:
the value removed (which was passed in)

clear

public void clear()
Clear the map.

This clears each collection in the map, and so may be slow.

Specified by:
clear in interface Map
Overrides:
clear in class HashMap

values

public Collection values()
Gets a view over all the values in the map.

The values view includes all the entries in the collections at each map key.

Specified by:
values in interface Map
Overrides:
values in class HashMap
Returns:
the collection view of all the values in the map

clone

public Object clone()
Clone the map.

The clone will shallow clone the collections as well as the map.

Overrides:
clone in class HashMap
Returns:
the cloned map

createCollection

protected Collection createCollection(Collection coll)
Creates a new instance of the map value Collection container.

This method can be overridden to use your own collection type.

Parameters:
coll - the collection to copy, may be null
Returns:
the new collection


Copyright © 2001-2004 Apache Software Foundation. All Rights Reserved.