Class MultiMapUtils
MultiValuedMap instances.
It contains various type safe and null safe methods. Additionally, it provides the following decorators:
- Since:
- 4.1
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final MultiValuedMapAn emptyUnmodifiableMultiValuedMap. -
Method Summary
Modifier and TypeMethodDescriptionstatic <K,V> MultiValuedMap <K, V> emptyIfNull(MultiValuedMap<K, V> map) Returns an immutable emptyMultiValuedMapif the argument isnull, or the argument itself otherwise.static <K,V> MultiValuedMap <K, V> 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 fromMultiValuedMapin a null-safe manner.static <K,V> Bag <V> getValuesAsBag(MultiValuedMap<K, V> map, K key) Gets a Bag fromMultiValuedMapin a null-safe manner.static <K,V> List <V> getValuesAsList(MultiValuedMap<K, V> map, K key) Gets a List fromMultiValuedMapin a null-safe manner.static <K,V> Set <V> getValuesAsSet(MultiValuedMap<K, V> map, K key) Gets a Set fromMultiValuedMapin a null-safe manner.static booleanisEmpty(MultiValuedMap<?, ?> map) Null-safe check if the specifiedMultiValuedMapis empty.static <K,V> ListValuedMap <K, V> Creates aListValuedMapwith anArrayListas collection class to store the values mapped to a key.static <K,V> SetValuedMap <K, V> Creates aSetValuedMapwith anHashSetas 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 aTransformedMultiValuedMapbacked by the given map.static <K,V> MultiValuedMap <K, V> unmodifiableMultiValuedMap(MultiValuedMap<? extends K, ? extends V> map) Returns anUnmodifiableMultiValuedMapbacked by the given map.
-
Field Details
-
EMPTY_MULTI_VALUED_MAP
An emptyUnmodifiableMultiValuedMap.
-
-
Method Details
-
emptyIfNull
Returns an immutable emptyMultiValuedMapif the argument isnull, or the argument itself otherwise.- Type Parameters:
K- the type of key in the mapV- the type of value in the map- Parameters:
map- the map, may be null- Returns:
- an empty
MultiValuedMapif the argument is null
-
emptyMultiValuedMap
Returns immutable EMPTY_MULTI_VALUED_MAP with generic type safety.- Type Parameters:
K- the type of key in the mapV- the type of value in the map- Returns:
- immutable and empty
MultiValuedMap
-
getCollection
Gets a Collection fromMultiValuedMapin a null-safe manner.- Type Parameters:
K- the key typeV- the value type- Parameters:
map- theMultiValuedMapto usekey- the key to look up- Returns:
- the Collection in the
MultiValuedMap, or null if input map is null
-
getValuesAsBag
Gets a Bag fromMultiValuedMapin a null-safe manner.- Type Parameters:
K- the key typeV- the value type- Parameters:
map- theMultiValuedMapto usekey- the key to look up- Returns:
- the Collection in the
MultiValuedMapas Bag, or null if input map is null
-
getValuesAsList
Gets a List fromMultiValuedMapin a null-safe manner.- Type Parameters:
K- the key typeV- the value type- Parameters:
map- theMultiValuedMapto usekey- the key to look up- Returns:
- the Collection in the
MultiValuedMapas List, or null if input map is null
-
getValuesAsSet
Gets a Set fromMultiValuedMapin a null-safe manner.- Type Parameters:
K- the key typeV- the value type- Parameters:
map- theMultiValuedMapto usekey- the key to look up- Returns:
- the Collection in the
MultiValuedMapas Set, or null if input map is null
-
isEmpty
Null-safe check if the specifiedMultiValuedMapis empty.If the provided map is null, returns true.
- Parameters:
map- the map to check, may be null- Returns:
- true if the map is empty or null
-
newListValuedHashMap
Creates aListValuedMapwith anArrayListas collection class to store the values mapped to a key.- Type Parameters:
K- the key typeV- the value type- Returns:
- a new
ListValuedMap
-
newSetValuedHashMap
Creates aSetValuedMapwith anHashSetas collection class to store the values mapped to a key.- Type Parameters:
K- the key typeV- the value type- Returns:
- a new
SetValuedMap
-
transformedMultiValuedMap
public static <K,V> MultiValuedMap<K,V> transformedMultiValuedMap(MultiValuedMap<K, V> map, Transformer<? super K, ? extends K> keyTransformer, Transformer<? super V, ? extends V> valueTransformer) Returns aTransformedMultiValuedMapbacked 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 behavior, seeTransformedMultiValuedMap.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.
- Type Parameters:
K- the key typeV- the value type- Parameters:
map- theMultiValuedMapto 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 transformation- Returns:
- a transformed
MultiValuedMapbacked by the given map - Throws:
NullPointerException- if map is null
-
unmodifiableMultiValuedMap
public static <K,V> MultiValuedMap<K,V> unmodifiableMultiValuedMap(MultiValuedMap<? extends K, ? extends V> map) Returns anUnmodifiableMultiValuedMapbacked by the given map.- Type Parameters:
K- the key typeV- the value type- Parameters:
map- theMultiValuedMapto decorate, must not be null- Returns:
- an unmodifiable
MultiValuedMapbacked by the provided map - Throws:
NullPointerException- if map is null
-