Package org.jvnet.hk2.component
Class MultiMap<K,V>
- java.lang.Object
-
- org.jvnet.hk2.component.MultiMap<K,V>
-
- Type Parameters:
K
- The key of the multi-mapV
- The types in the multi-map
- All Implemented Interfaces:
Serializable
,Cloneable
public class MultiMap<K,V> extends Object implements Serializable, Cloneable
Map from a key to multiple values. Order is significant among values, and null values are allowed, although null keys are not.- Author:
- Kohsuke Kawaguchi, Jerome Dochez
- See Also:
- Serialized Form
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(K k, V v)
Adds one more key-value pair.MultiMap<K,V>
clone()
Creates a copy of the map that contains the exact same key and value set.boolean
contains(K k1, V k2)
Checks if the map contains the given key(s), also extending the search to including the sub collection.boolean
containsKey(K k)
Checks if the map contains the given key.Set<Map.Entry<K,List<V>>>
entrySet()
Lists up all entries.boolean
equals(Object another)
List<V>
get(K k)
Returns the elements indexed by the provided keyV
getOne(K k)
Gets the first value if any, or null.int
hashCode()
Set<K>
keySet()
Returns the set of keys associated with this MultiMapvoid
mergeAll(MultiMap<K,V> another)
This method merges all of the keys and values from another MultiMap into this MultiMap.List<V>
remove(K key)
Removes an key value from the mapboolean
remove(K key, V entry)
Removes an key value pair from the map.void
set(K k, Collection<? extends V> v)
Replaces all the existing values associated with the key by the given value.void
set(K k, V v)
Replaces all the existing values associated with the key by the given single value.int
size()
Returns the size of the map.String
toCommaSeparatedString()
String
toString()
-
-
-
Method Detail
-
keySet
public Set<K> keySet()
Returns the set of keys associated with this MultiMap- Returns:
- The set of keys currently available in this MultiMap. Will not return null, but may return a Set of lenght zero
-
add
public final void add(K k, V v)
Adds one more key-value pair.- Parameters:
k
- key to store the entry underv
- value to store in the k's values.
-
set
public void set(K k, Collection<? extends V> v)
Replaces all the existing values associated with the key by the given value. If v is empty the key k will be removed from the MultiMap.- Parameters:
k
- key for the valuesv
- Can be null or empty.
-
set
public void set(K k, V v)
Replaces all the existing values associated with the key by the given single value.- Parameters:
k
- key for the valuesv
- singleton value for k key This is short for set(k,Collections.singleton(v))
-
get
public final List<V> get(K k)
Returns the elements indexed by the provided key- Parameters:
k
- key for the values- Returns:
- Can be empty but never null. Read-only.
-
mergeAll
public void mergeAll(MultiMap<K,V> another)
This method merges all of the keys and values from another MultiMap into this MultiMap. If a key/value pair is found in both MultiMaps it is not re-added to this MultiMap, but is instead discarded- Parameters:
another
- The MultiMap from which to add values to this MultiMap. If null this method does nothing
-
containsKey
public boolean containsKey(K k)
Checks if the map contains the given key.- Parameters:
k
- key to test- Returns:
- true if the map contains at least one element for this key
-
contains
public boolean contains(K k1, V k2)
Checks if the map contains the given key(s), also extending the search to including the sub collection.- Parameters:
k1
- key from top collectionk2
- key (value) from inner collection- Returns:
- true if the map contains at least one element for these keys
-
remove
public List<V> remove(K key)
Removes an key value from the map- Parameters:
key
- key to be removed- Returns:
- the value stored under this key or null if there was none
-
remove
public boolean remove(K key, V entry)
Removes an key value pair from the map. If the list of entries for that key is empty after the remove it will be removed from the set of keys- Parameters:
key
- key to be removedentry
- the entry to be removed from the key'ed list- Returns:
- true if there was none that was deleted
-
getOne
public V getOne(K k)
Gets the first value if any, or null. This is useful when you know the given key only has one value and you'd like to get to that value.- Parameters:
k
- key for the values- Returns:
- null if the key has no values or it has a value but the value is null.
-
toCommaSeparatedString
public String toCommaSeparatedString()
- Returns:
- the map as "key=value1,key=value2,...."
-
clone
public MultiMap<K,V> clone() throws CloneNotSupportedException
Creates a copy of the map that contains the exact same key and value set. Keys and values won't cloned.- Overrides:
clone
in classObject
- Throws:
CloneNotSupportedException
-
size
public int size()
Returns the size of the map. This returns the numbers of keys in the map, not the number of values- Returns:
- integer or 0 if the map is empty
-
-