Package software.amazon.smithy.utils
Class MapUtils
- java.lang.Object
-
- software.amazon.smithy.utils.MapUtils
-
public final class MapUtils extends java.lang.ObjectImmutable Map utilities to polyfill Java 9+ features.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <K,V>
java.util.Map<K,V>copyOf(java.util.Map<? extends K,? extends V> map)Creates an immutable copy of the given map.static <K,V>
java.util.Map.Entry<K,V>entry(K key, V value)Creates an immutableMap.Entryfrom the given key and value.static <K,V>
java.util.Map<K,V>of()Returns an unmodifiable map containing zero mappings.static <K,V>
java.util.Map<K,V>of(K k1, V v1)Returns an unmodifiable map containing a single mapping.static <K,V>
java.util.Map<K,V>of(K k1, V v1, K k2, V v2)Returns an unmodifiable map containing two mappings.static <K,V>
java.util.Map<K,V>of(K k1, V v1, K k2, V v2, K k3, V v3)Returns an unmodifiable map containing three mappings.static <K,V>
java.util.Map<K,V>of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4)Returns an unmodifiable map containing four mappings.static <K,V>
java.util.Map<K,V>of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5)Returns an unmodifiable map containing five mappings.static <K,V>
java.util.Map<K,V>of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6)Returns an unmodifiable map containing six mappings.static <K,V>
java.util.Map<K,V>of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7)Returns an unmodifiable map containing seven mappings.static <K,V>
java.util.Map<K,V>of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8)Returns an unmodifiable map containing eight mappings.static <K,V>
java.util.Map<K,V>of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9)Returns an unmodifiable map containing nine mappings.static <K,V>
java.util.Map<K,V>of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10)Returns an unmodifiable map containing ten mappings.static <K,V>
java.util.Map<K,V>ofEntries(java.util.Map.Entry<? extends K,? extends V>... entries)Creates an unmodifiable Map from an array ofMap.Entryvalues.static <K,V>
java.util.Map<K,V>orderedCopyOf(java.util.Map<? extends K,? extends V> map)Creates an ordered immutable copy of the given map.static <T,K,U>
java.util.stream.Collector<T,?,java.util.Map<K,U>>toUnmodifiableMap(java.util.function.Function<? super T,? extends K> keyMapper, java.util.function.Function<? super T,? extends U> valueMapper)Creates a collector that collects into an unmodifiable Map.
-
-
-
Method Detail
-
copyOf
public static <K,V> java.util.Map<K,V> copyOf(java.util.Map<? extends K,? extends V> map)
Creates an immutable copy of the given map.- Type Parameters:
K- the Map's key typeV- the Map's value type- Parameters:
map- The map to make an immutable copy of- Returns:
- An immutable Map copy
-
orderedCopyOf
public static <K,V> java.util.Map<K,V> orderedCopyOf(java.util.Map<? extends K,? extends V> map)
Creates an ordered immutable copy of the given map.- Type Parameters:
K- the Map's key typeV- the Map's value type- Parameters:
map- The map to make an immutable copy of- Returns:
- An ordered immutable Map copy that maintains the order of the original.
-
of
public static <K,V> java.util.Map<K,V> of()
Returns an unmodifiable map containing zero mappings.- Type Parameters:
K- the Map's key typeV- the Map's value type- Returns:
- an empty Map
-
of
public static <K,V> java.util.Map<K,V> of(K k1, V v1)Returns an unmodifiable map containing a single mapping.- Type Parameters:
K- the Map's key typeV- the Map's value type- Parameters:
k1- the mapping's keyv1- the mapping's value- Returns:
- a Map containing the specified mapping
- Throws:
java.lang.NullPointerException- if the key or the value isnull
-
of
public static <K,V> java.util.Map<K,V> of(K k1, V v1, K k2, V v2)Returns an unmodifiable map containing two mappings.- Type Parameters:
K- the Map's key typeV- the Map's value type- Parameters:
k1- the first mapping's keyv1- the first mapping's valuek2- the second mapping's keyv2- the second mapping's value- Returns:
- a Map containing the specified mappings
- Throws:
java.lang.IllegalArgumentException- if the keys are duplicatesjava.lang.NullPointerException- if any key or value isnull
-
of
public static <K,V> java.util.Map<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3)Returns an unmodifiable map containing three mappings.- Type Parameters:
K- the Map's key typeV- the Map's value type- Parameters:
k1- the first mapping's keyv1- the first mapping's valuek2- the second mapping's keyv2- the second mapping's valuek3- the third mapping's keyv3- the third mapping's value- Returns:
- a Map containing the specified mappings
- Throws:
java.lang.IllegalArgumentException- if there are any duplicate keysjava.lang.NullPointerException- if any key or value isnull
-
of
public static <K,V> java.util.Map<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4)Returns an unmodifiable map containing four mappings.- Type Parameters:
K- the Map's key typeV- the Map's value type- Parameters:
k1- the first mapping's keyv1- the first mapping's valuek2- the second mapping's keyv2- the second mapping's valuek3- the third mapping's keyv3- the third mapping's valuek4- the fourth mapping's keyv4- the fourth mapping's value- Returns:
- a Map containing the specified mappings
- Throws:
java.lang.IllegalArgumentException- if there are any duplicate keysjava.lang.NullPointerException- if any key or value isnull
-
of
public static <K,V> java.util.Map<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5)Returns an unmodifiable map containing five mappings.- Type Parameters:
K- the Map's key typeV- the Map's value type- Parameters:
k1- the first mapping's keyv1- the first mapping's valuek2- the second mapping's keyv2- the second mapping's valuek3- the third mapping's keyv3- the third mapping's valuek4- the fourth mapping's keyv4- the fourth mapping's valuek5- the fifth mapping's keyv5- the fifth mapping's value- Returns:
- a Map containing the specified mappings
- Throws:
java.lang.IllegalArgumentException- if there are any duplicate keysjava.lang.NullPointerException- if any key or value isnull
-
of
public static <K,V> java.util.Map<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6)Returns an unmodifiable map containing six mappings.- Type Parameters:
K- the Map's key typeV- the Map's value type- Parameters:
k1- the first mapping's keyv1- the first mapping's valuek2- the second mapping's keyv2- the second mapping's valuek3- the third mapping's keyv3- the third mapping's valuek4- the fourth mapping's keyv4- the fourth mapping's valuek5- the fifth mapping's keyv5- the fifth mapping's valuek6- the sixth mapping's keyv6- the sixth mapping's value- Returns:
- a Map containing the specified mappings
- Throws:
java.lang.IllegalArgumentException- if there are any duplicate keysjava.lang.NullPointerException- if any key or value isnull
-
of
public static <K,V> java.util.Map<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7)Returns an unmodifiable map containing seven mappings.- Type Parameters:
K- the Map's key typeV- the Map's value type- Parameters:
k1- the first mapping's keyv1- the first mapping's valuek2- the second mapping's keyv2- the second mapping's valuek3- the third mapping's keyv3- the third mapping's valuek4- the fourth mapping's keyv4- the fourth mapping's valuek5- the fifth mapping's keyv5- the fifth mapping's valuek6- the sixth mapping's keyv6- the sixth mapping's valuek7- the seventh mapping's keyv7- the seventh mapping's value- Returns:
- a Map containing the specified mappings
- Throws:
java.lang.IllegalArgumentException- if there are any duplicate keysjava.lang.NullPointerException- if any key or value isnull
-
of
public static <K,V> java.util.Map<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8)Returns an unmodifiable map containing eight mappings.- Type Parameters:
K- the Map's key typeV- the Map's value type- Parameters:
k1- the first mapping's keyv1- the first mapping's valuek2- the second mapping's keyv2- the second mapping's valuek3- the third mapping's keyv3- the third mapping's valuek4- the fourth mapping's keyv4- the fourth mapping's valuek5- the fifth mapping's keyv5- the fifth mapping's valuek6- the sixth mapping's keyv6- the sixth mapping's valuek7- the seventh mapping's keyv7- the seventh mapping's valuek8- the eighth mapping's keyv8- the eighth mapping's value- Returns:
- a Map containing the specified mappings
- Throws:
java.lang.IllegalArgumentException- if there are any duplicate keysjava.lang.NullPointerException- if any key or value isnull
-
of
public static <K,V> java.util.Map<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9)Returns an unmodifiable map containing nine mappings.- Type Parameters:
K- the Map's key typeV- the Map's value type- Parameters:
k1- the first mapping's keyv1- the first mapping's valuek2- the second mapping's keyv2- the second mapping's valuek3- the third mapping's keyv3- the third mapping's valuek4- the fourth mapping's keyv4- the fourth mapping's valuek5- the fifth mapping's keyv5- the fifth mapping's valuek6- the sixth mapping's keyv6- the sixth mapping's valuek7- the seventh mapping's keyv7- the seventh mapping's valuek8- the eighth mapping's keyv8- the eighth mapping's valuek9- the ninth mapping's keyv9- the ninth mapping's value- Returns:
- a Map containing the specified mappings
- Throws:
java.lang.IllegalArgumentException- if there are any duplicate keysjava.lang.NullPointerException- if any key or value isnull
-
of
public static <K,V> java.util.Map<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10)Returns an unmodifiable map containing ten mappings.- Type Parameters:
K- the Map's key typeV- the Map's value type- Parameters:
k1- the first mapping's keyv1- the first mapping's valuek2- the second mapping's keyv2- the second mapping's valuek3- the third mapping's keyv3- the third mapping's valuek4- the fourth mapping's keyv4- the fourth mapping's valuek5- the fifth mapping's keyv5- the fifth mapping's valuek6- the sixth mapping's keyv6- the sixth mapping's valuek7- the seventh mapping's keyv7- the seventh mapping's valuek8- the eighth mapping's keyv8- the eighth mapping's valuek9- the ninth mapping's keyv9- the ninth mapping's valuek10- the tenth mapping's keyv10- the tenth mapping's value- Returns:
- a Map containing the specified mappings
- Throws:
java.lang.IllegalArgumentException- if there are any duplicate keysjava.lang.NullPointerException- if any key or value isnull
-
entry
public static <K,V> java.util.Map.Entry<K,V> entry(K key, V value)Creates an immutableMap.Entryfrom the given key and value.- Type Parameters:
K- Key type.V- Value type.- Parameters:
key- Key to set in theMap.Entry.value- Value to set in theMap.Entry.- Returns:
- Returns the created entry.
- Throws:
java.lang.NullPointerException- if the key or value are null.
-
ofEntries
@SafeVarargs public static <K,V> java.util.Map<K,V> ofEntries(java.util.Map.Entry<? extends K,? extends V>... entries)
Creates an unmodifiable Map from an array ofMap.Entryvalues.- Type Parameters:
K- Map key type.V- Map value type.- Parameters:
entries- Map entries to add to the createdMap.- Returns:
- Returns an unmodifiable map of the given entries.
-
toUnmodifiableMap
public static <T,K,U> java.util.stream.Collector<T,?,java.util.Map<K,U>> toUnmodifiableMap(java.util.function.Function<? super T,? extends K> keyMapper, java.util.function.Function<? super T,? extends U> valueMapper)Creates a collector that collects into an unmodifiable Map.This is a polyfill equivalent of Java 10's
Collectors#toUnmodifiableMap.- Type Parameters:
T- the type to retrieve keys and values from.K- the Map's key type.U- the Map's value type.- Parameters:
keyMapper- Function that retrieves the key.valueMapper- Function that retrieves the value.- Returns:
- a Collector that accumulates the entries into an unmodifiable Map.
-
-