K
- the type of key elementsV
- the type of value elementspublic abstract class AbstractMultiValuedMapDecorator<K,V> extends java.lang.Object implements MultiValuedMap<K,V>, java.io.Serializable
MultiValuedMap
to provide additional behaviour.
Each method call made on this MultiValuedMap
is forwarded to the
decorated MultiValuedMap
. This class is used as a framework to build
to extensions such as synchronized and unmodifiable behaviour.
Modifier and Type | Method and Description |
---|---|
java.util.Map<K,java.util.Collection<V>> |
asMap()
Returns a view of this multi-valued map as a
Map from each distinct
key to the non-empty collection of that key's associated values. |
void |
clear()
Removes all of the mappings from this map (optional operation).
|
boolean |
containsKey(java.lang.Object key)
Returns
true if this map contains a mapping for the specified
key. |
boolean |
containsMapping(java.lang.Object key,
java.lang.Object value)
Checks whether the map contains a mapping for the specified key and value.
|
boolean |
containsValue(java.lang.Object value)
Checks whether the map contains at least one mapping for the specified value.
|
java.util.Collection<java.util.Map.Entry<K,V>> |
entries()
Returns a
Collection view of the mappings contained in this multi-valued map. |
boolean |
equals(java.lang.Object object) |
java.util.Collection<V> |
get(K key)
Returns a view collection of the values associated with the specified key.
|
int |
hashCode() |
boolean |
isEmpty()
Returns
true if this map contains no key-value mappings. |
MultiSet<K> |
keys()
Returns a
MultiSet view of the keys contained in this multi-valued map. |
java.util.Set<K> |
keySet()
Returns a
Set view of the keys contained in this multi-valued map. |
MapIterator<K,V> |
mapIterator()
Obtains a
MapIterator over this multi-valued map. |
boolean |
put(K key,
V value)
Adds a key-value mapping to this multi-valued map.
|
boolean |
putAll(K key,
java.lang.Iterable<? extends V> values)
Adds a mapping to the specified key for all values contained in the given Iterable.
|
boolean |
putAll(java.util.Map<? extends K,? extends V> map)
Copies all mappings from the specified map to this multi-valued map
(optional operation).
|
boolean |
putAll(MultiValuedMap<? extends K,? extends V> map)
Copies all mappings from the specified map to this multi-valued map
(optional operation).
|
java.util.Collection<V> |
remove(java.lang.Object key)
Removes all values associated with the specified key.
|
boolean |
removeMapping(java.lang.Object key,
java.lang.Object item)
Removes a key-value mapping from the map.
|
int |
size()
Gets the total size of the map.
|
java.lang.String |
toString() |
java.util.Collection<V> |
values()
Gets a
Collection view of all values contained in this multi-valued map. |
public int size()
MultiValuedMap
Implementations would return the total size of the map which is the count of the values from all keys.
size
in interface MultiValuedMap<K,V>
public boolean isEmpty()
MultiValuedMap
true
if this map contains no key-value mappings.isEmpty
in interface MultiValuedMap<K,V>
true
if this map contains no key-value mappingspublic boolean containsKey(java.lang.Object key)
MultiValuedMap
true
if this map contains a mapping for the specified
key. More formally, returns true
if and only if this map contains
a mapping for a key k
such that (key==null ? k==null : key.equals(k))
.
(There can be at most one such mapping.)containsKey
in interface MultiValuedMap<K,V>
key
- key whose presence in this map is to be testedpublic boolean containsValue(java.lang.Object value)
MultiValuedMap
containsValue
in interface MultiValuedMap<K,V>
value
- the value to search forpublic boolean containsMapping(java.lang.Object key, java.lang.Object value)
MultiValuedMap
containsMapping
in interface MultiValuedMap<K,V>
key
- the key to search forvalue
- the value to search forpublic java.util.Collection<V> get(K key)
MultiValuedMap
This method will return an empty collection if MultiValuedMap.containsKey(Object)
returns false
. Changes to the returned collection will update the underlying
MultiValuedMap
and vice-versa.
get
in interface MultiValuedMap<K,V>
key
- the key to retrieveCollection
of values, implementations should
return an empty collection for no mappingpublic java.util.Collection<V> remove(java.lang.Object key)
MultiValuedMap
The returned collection may be modifiable, but updates will not be propagated to this multi-valued map. In case no mapping was stored for the specified key, an empty, unmodifiable collection will be returned.
remove
in interface MultiValuedMap<K,V>
key
- the key to remove values frompublic boolean removeMapping(java.lang.Object key, java.lang.Object item)
MultiValuedMap
The item is removed from the collection mapped to the specified key. Other values attached to that key are unaffected.
If the last value for a key is removed, implementations typically return
an empty collection from a subsequent get(Object)
.
removeMapping
in interface MultiValuedMap<K,V>
key
- the key to remove fromitem
- the item to removepublic void clear()
MultiValuedMap
The map will be empty after this call returns.
clear
in interface MultiValuedMap<K,V>
public boolean put(K key, V value)
MultiValuedMap
Unlike a normal Map
the previous value is not replaced.
Instead the new value is added to the collection stored against the key.
Depending on the collection type used, duplicate key-value mappings may
be allowed.
The method will return true
if the size of the multi-valued map
has been increased because of this operation.
put
in interface MultiValuedMap<K,V>
key
- the key to store againstvalue
- the value to add to the collection at the keypublic java.util.Set<K> keySet()
MultiValuedMap
Set
view of the keys contained in this multi-valued map.
The set is backed by the map, so changes to the map are reflected in the set, and vice-versa.
If the map is modified while an iteration over the set is in
progress (except through the iterator's own remove
operation),
the result of the iteration is undefined. The set supports element
removal, which removes the corresponding mapping from the map, via the
Iterator.remove
, Set.remove
, removeAll
,
retainAll
, and clear
operations. It does not support
the add
or addAll
operations.
keySet
in interface MultiValuedMap<K,V>
public java.util.Collection<java.util.Map.Entry<K,V>> entries()
MultiValuedMap
Collection
view of the mappings contained in this multi-valued map.
The collection is backed by the map, so changes to the map are reflected in the collection, and vice-versa.
entries
in interface MultiValuedMap<K,V>
public MultiSet<K> keys()
MultiValuedMap
MultiSet
view of the keys contained in this multi-valued map.
The MultiSet.getCount(Object)
method of the returned multiset will give
the same result a calling get(Object).size()
for the same key.
This multiset is backed by the map, so any changes in the map are reflected in the multiset.
keys
in interface MultiValuedMap<K,V>
public java.util.Collection<V> values()
MultiValuedMap
Collection
view of all values contained in this multi-valued map.
Implementations typically return a collection containing the combination of values from all keys.
values
in interface MultiValuedMap<K,V>
public java.util.Map<K,java.util.Collection<V>> asMap()
MultiValuedMap
Map
from each distinct
key to the non-empty collection of that key's associated values.
Note that this.asMap().get(k)
is equivalent to this.get(k)
only when k
is a key contained in the multi-valued map; otherwise it
returns null
as opposed to an empty collection.
Changes to the returned map or the collections that serve as its values
will update the underlying multi-valued map, and vice versa. The map does
not support put
or putAll
, nor do its entries support
setValue
.
asMap
in interface MultiValuedMap<K,V>
public boolean putAll(K key, java.lang.Iterable<? extends V> values)
MultiValuedMap
putAll
in interface MultiValuedMap<K,V>
key
- the key to store againstvalues
- the values to add to the collection at the key, may not be nullpublic boolean putAll(java.util.Map<? extends K,? extends V> map)
MultiValuedMap
The effect of this call is equivalent to that of calling
put(k, v)
on this map once for each mapping
from key k
to value v
in the specified map.
The behavior of this operation is undefined if the specified map is modified while the operation is in progress.
putAll
in interface MultiValuedMap<K,V>
map
- mappings to be stored in this map, may not be nullpublic boolean putAll(MultiValuedMap<? extends K,? extends V> map)
MultiValuedMap
The effect of this call is equivalent to that of calling
put(k, v)
on this map once for each
mapping from key k
to value v
in the specified map.
The behavior of this operation is undefined if the specified map is modified while the operation is in progress.
putAll
in interface MultiValuedMap<K,V>
map
- mappings to be stored in this map, may not be nullpublic MapIterator<K,V> mapIterator()
MultiValuedMap
MapIterator
over this multi-valued map.
A map iterator is an efficient way of iterating over maps. There is no
need to access the entries collection or use Map.Entry
objects.
mapIterator
in interface MultiValuedMap<K,V>
public boolean equals(java.lang.Object object)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object
"Copyright © 2010 - 2020 Adobe Systems Incorporated. All Rights Reserved"