public class MultiMapUtils extends Object
MultiValuedMap
instances.
It contains various type safe and null safe methods. Additionally, it provides the following decorators:
Modifier and Type | Field and Description |
---|---|
static MultiValuedMap |
EMPTY_MULTI_VALUED_MAP
An empty
UnmodifiableMultiValuedMap . |
Modifier and Type | Method and Description |
---|---|
static <K,V> MultiValuedMap<K,V> |
emptyIfNull(MultiValuedMap<K,V> map)
Returns an immutable empty
MultiValuedMap if the argument is
null , or the argument itself otherwise. |
static <K,V> MultiValuedMap<K,V> |
emptyMultiValuedMap()
Returns immutable EMPTY_MULTI_VALUED_MAP with generic type safety.
|
static <K,V> Collection<V> |
getCollection(MultiValuedMap<K,V> map,
K key)
Gets a Collection from
MultiValuedMap in a null-safe manner. |
static <K,V> Bag<V> |
getValuesAsBag(MultiValuedMap<K,V> map,
K key)
Gets a Bag from
MultiValuedMap in a null-safe manner. |
static <K,V> List<V> |
getValuesAsList(MultiValuedMap<K,V> map,
K key)
Gets a List from
MultiValuedMap in a null-safe manner. |
static <K,V> Set<V> |
getValuesAsSet(MultiValuedMap<K,V> map,
K key)
Gets a Set from
MultiValuedMap in a null-safe manner. |
static boolean |
isEmpty(MultiValuedMap<?,?> map)
Null-safe check if the specified
MultiValuedMap is empty. |
static <K,V> ListValuedMap<K,V> |
newListValuedHashMap()
Creates a
ListValuedMap with an ArrayList as
collection class to store the values mapped to a key. |
static <K,V> SetValuedMap<K,V> |
newSetValuedHashMap()
Creates a
SetValuedMap with an HashSet as
collection class to store the values mapped to a key. |
static <K,V> MultiValuedMap<K,V> |
transformedMultiValuedMap(MultiValuedMap<K,V> map,
Transformer<? super K,? extends K> keyTransformer,
Transformer<? super V,? extends V> valueTransformer)
Returns a
TransformedMultiValuedMap backed by the given map. |
static <K,V> MultiValuedMap<K,V> |
unmodifiableMultiValuedMap(MultiValuedMap<? extends K,? extends V> map)
Returns an
UnmodifiableMultiValuedMap backed by the given
map. |
public static final MultiValuedMap EMPTY_MULTI_VALUED_MAP
UnmodifiableMultiValuedMap
.public static <K,V> MultiValuedMap<K,V> emptyMultiValuedMap()
K
- the type of key in the mapV
- the type of value in the mapMultiValuedMap
public static <K,V> MultiValuedMap<K,V> emptyIfNull(MultiValuedMap<K,V> map)
MultiValuedMap
if the argument is
null
, or the argument itself otherwise.K
- the type of key in the mapV
- the type of value in the mapmap
- the map, may be nullMultiValuedMap
if the argument is nullpublic static boolean isEmpty(MultiValuedMap<?,?> map)
MultiValuedMap
is empty.
If the provided map is null, returns true.
map
- the map to check, may be nullpublic static <K,V> Collection<V> getCollection(MultiValuedMap<K,V> map, K key)
MultiValuedMap
in a null-safe manner.K
- the key typeV
- the value typemap
- the MultiValuedMap
to usekey
- the key to look upMultiValuedMap
, or null if input map is nullpublic static <K,V> List<V> getValuesAsList(MultiValuedMap<K,V> map, K key)
MultiValuedMap
in a null-safe manner.K
- the key typeV
- the value typemap
- the MultiValuedMap
to usekey
- the key to look upMultiValuedMap
as List, or null if input map is nullpublic static <K,V> Set<V> getValuesAsSet(MultiValuedMap<K,V> map, K key)
MultiValuedMap
in a null-safe manner.K
- the key typeV
- the value typemap
- the MultiValuedMap
to usekey
- the key to look upMultiValuedMap
as Set, or null if input map is nullpublic static <K,V> Bag<V> getValuesAsBag(MultiValuedMap<K,V> map, K key)
MultiValuedMap
in a null-safe manner.K
- the key typeV
- the value typemap
- the MultiValuedMap
to usekey
- the key to look upMultiValuedMap
as Bag, or null if input map is nullpublic static <K,V> ListValuedMap<K,V> newListValuedHashMap()
ListValuedMap
with an ArrayList
as
collection class to store the values mapped to a key.K
- the key typeV
- the value typeListValuedMap
public static <K,V> SetValuedMap<K,V> newSetValuedHashMap()
SetValuedMap
with an HashSet
as
collection class to store the values mapped to a key.K
- the key typeV
- the value typeSetValuedMap
public static <K,V> MultiValuedMap<K,V> unmodifiableMultiValuedMap(MultiValuedMap<? extends K,? extends V> map)
UnmodifiableMultiValuedMap
backed by the given
map.K
- the key typeV
- the value typemap
- the MultiValuedMap
to decorate, must not be nullMultiValuedMap
backed by the provided mapNullPointerException
- if map is nullpublic static <K,V> MultiValuedMap<K,V> transformedMultiValuedMap(MultiValuedMap<K,V> map, Transformer<? super K,? extends K> keyTransformer, Transformer<? super V,? extends V> valueTransformer)
TransformedMultiValuedMap
backed by the given map.
This method returns a new MultiValuedMap
(decorating the
specified map) that will transform any new entries added to it. Existing
entries in the specified map will not be transformed. If you want that
behaviour, see TransformedMultiValuedMap.transformedMap(org.apache.commons.collections4.MultiValuedMap<K, V>, org.apache.commons.collections4.Transformer<? super K, ? extends K>, org.apache.commons.collections4.Transformer<? super V, ? extends V>)
.
Each object is passed through the transformers as it is added to the Map. It is important not to use the original map after invoking this method, as it is a back door for adding untransformed objects.
If there are any elements already in the map being decorated, they are NOT transformed.
K
- the key typeV
- the value typemap
- the MultiValuedMap
to transform, must not be null, typically emptykeyTransformer
- the transformer for the map keys, null means no transformationvalueTransformer
- the transformer for the map values, null means no transformationMultiValuedMap
backed by the given mapNullPointerException
- if map is nullCopyright © 2001–2018 The Apache Software Foundation. All rights reserved.