|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.google.common.collect.Maps
public final class Maps
Provides static methods for creating mutable Map instances easily.
You can replace code like:
Map<String, Integer> map = new HashMap<String, Integer>();
with just:
Map<String, Integer> map = Maps.newHashMap();
Supported today are: HashMap, LinkedHashMap, ConcurrentHashMap, TreeMap, and EnumMap.
See also this class's counterparts Lists and Sets.
| Method Summary | ||
|---|---|---|
static boolean |
containsEntry(java.util.Map<?,?> map,
java.lang.Object key,
java.lang.Object value)
Returns true if map contains an entry mapping key
to value. |
|
static java.util.Map<java.lang.String,java.lang.String> |
fromProperties(java.util.Properties properties)
Creates a Map<String, String> from a Properties instance. |
|
static
|
immutableBiMap()
Returns an immutable empty BiMap instance. |
|
static
|
immutableBiMap(K k1,
V v1)
Creates a new immutable BiMap instance containing the given
key-value pair. |
|
static
|
immutableBiMap(K k1,
V v1,
K k2,
V v2)
Creates a new immutable BiMap instance containing the given
key-value pairs. |
|
static
|
immutableBiMap(K k1,
V v1,
K k2,
V v2,
K k3,
V v3)
Creates a new immutable BiMap instance containing the given
key-value pairs. |
|
static
|
immutableBiMap(K k1,
V v1,
K k2,
V v2,
K k3,
V v3,
K k4,
V v4)
Creates a new immutable BiMap instance containing the given
key-value pairs. |
|
static
|
immutableBiMap(K k1,
V v1,
K k2,
V v2,
K k3,
V v3,
K k4,
V v4,
K k5,
V v5)
Creates a new immutable BiMap instance containing the given
key-value pairs. |
|
static
|
immutableEntry(K key,
V value)
Returns an immutable map entry with the specified key and value. |
|
static
|
newBiMap(java.util.Map<K,V> forward,
java.util.Map<V,K> backward)
Returns a new BiMap, backed by the two supplied empty maps. |
|
static
|
newClassToInstanceMap()
Returns a new ClassToInstanceMap instance backed by a HashMap using the default initial capacity and load factor. |
|
static
|
newClassToInstanceMap(java.util.Map<java.lang.Class<? extends B>,B> backingMap)
Returns a new ClassToInstanceMap instance backed by a given empty
backingMap. |
|
static
|
newConcurrentHashMap()
Creates a ConcurrentHashMap instance. |
|
static
|
newEnumBiMap(java.lang.Class<K> keyType,
java.lang.Class<V> valueType)
Returns a new empty EnumBiMap using the specified key type and
value type. |
|
static
|
newEnumHashBiMap(java.lang.Class<K> keyType)
Returns a new empty EnumHashBiMap using the specified key type. |
|
static
|
newEnumMap(java.lang.Class<K> type)
Creates an EnumMap instance. |
|
static
|
newHashBiMap()
Returns a new empty HashBiMap with the default initial capacity
(16) and load factor (0.75). |
|
static
|
newHashMap()
Creates a HashMap instance. |
|
static
|
newHashMap(java.util.Map<? extends K,? extends V> map)
Creates a HashMap instance with the same mappings as the specified
map. |
|
static
|
newHashMapWithExpectedSize(int expectedSize)
Creates a HashMap instance with enough capacity to hold the
specified number of elements without rehashing. |
|
static
|
newIdentityHashMap()
Creates an IdentityHashMap instance. |
|
static
|
newLinkedHashMap()
Creates an insertion-ordered LinkedHashMap instance. |
|
static
|
newLinkedHashMap(java.util.Map<? extends K,? extends V> map)
Creates an insertion-ordered LinkedHashMap instance with the same
mappings as the specified map. |
|
static
|
newTreeMap()
Creates a TreeMap instance using the natural ordering of its
elements. |
|
static
|
newTreeMap(java.util.Comparator<C> comparator)
Creates a TreeMap instance using the given comparator. |
|
static
|
sortedKeySet(java.util.SortedMap<K,V> map)
Returns a sorted set view of the keys contained in the specified map. |
|
static
|
synchronizedBiMap(BiMap<K,V> bimap)
Returns a synchronized (thread-safe) bimap backed by the specified bimap. |
|
static
|
uniqueIndex(java.util.Collection<? extends V> values,
Function<? super V,? extends K> keyFunction)
Creates an index Map that contains the results of applying a
specified function to each item in a Collection of values. |
|
static
|
uniqueIndex(java.lang.Iterable<? extends V> values,
Function<? super V,? extends K> keyFunction)
Creates an index Map that contains the results of applying a
specified function to each item in an Iterable of values. |
|
static
|
uniqueIndex(java.util.Iterator<? extends V> values,
Function<? super V,? extends K> keyFunction)
Creates an index Map that contains the results of applying a
specified function to each item in an Iterator of values. |
|
static
|
unmodifiableBiMap(BiMap<K,V> bimap)
Returns an unmodifiable view of the specified bimap. |
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
|---|
public static <K,V> java.util.HashMap<K,V> newHashMap()
HashMap instance.
Note: if K is an enum type, use newEnumMap(java.lang.Class instead.
Note: if you don't actually need the resulting map to be mutable,
use Collections.emptyMap() instead.
HashMappublic static <K,V> java.util.HashMap<K,V> newHashMapWithExpectedSize(int expectedSize)
HashMap instance with enough capacity to hold the
specified number of elements without rehashing.
expectedSize - the expected size
HashMap, initially empty, with enough
capacity to hold expectedSize elements without rehashing
java.lang.IllegalArgumentException - if expectedSize is negativepublic static <K,V> java.util.HashMap<K,V> newHashMap(java.util.Map<? extends K,? extends V> map)
HashMap instance with the same mappings as the specified
map.
Note: if K is an Enum type, use newEnumMap(java.lang.Class instead.
map - the mappings to be placed in the new map
HashMap initialized with the mappings from
mappublic static <K,V> java.util.LinkedHashMap<K,V> newLinkedHashMap()
LinkedHashMap instance.
LinkedHashMappublic static <K,V> java.util.LinkedHashMap<K,V> newLinkedHashMap(java.util.Map<? extends K,? extends V> map)
LinkedHashMap instance with the same
mappings as the specified map.
map - the mappings to be placed in the new map
LinkedHashMap initialized with the
mappings from mappublic static <K,V> java.util.concurrent.ConcurrentHashMap<K,V> newConcurrentHashMap()
ConcurrentHashMap instance.
ConcurrentHashMappublic static <K extends java.lang.Comparable,V> java.util.TreeMap<K,V> newTreeMap()
TreeMap instance using the natural ordering of its
elements.
TreeMap
public static <C,K extends C,V> java.util.TreeMap<K,V> newTreeMap(@Nullable
java.util.Comparator<C> comparator)
TreeMap instance using the given comparator.
comparator - the Comparator to sort the keys with
TreeMappublic static <K extends java.lang.Enum<K>,V> java.util.EnumMap<K,V> newEnumMap(java.lang.Class<K> type)
EnumMap instance.
type - the key type for this map
EnumMappublic static <K,V> java.util.IdentityHashMap<K,V> newIdentityHashMap()
IdentityHashMap instance.
IdentityHashMap
public static boolean containsEntry(java.util.Map<?,?> map,
@Nullable
java.lang.Object key,
@Nullable
java.lang.Object value)
true if map contains an entry mapping key
to value. If you are not concerned with null-safety you can simply
use map.get(key).equals(value).
public static <K,V> BiMap<K,V> immutableBiMap()
BiMap instance.
public static <K,V> BiMap<K,V> immutableBiMap(@Nullable
K k1,
@Nullable
V v1)
BiMap instance containing the given
key-value pair.
public static <K,V> BiMap<K,V> immutableBiMap(@Nullable
K k1,
@Nullable
V v1,
@Nullable
K k2,
@Nullable
V v2)
BiMap instance containing the given
key-value pairs.
ImmutableBiMapBuilder
public static <K,V> BiMap<K,V> immutableBiMap(@Nullable
K k1,
@Nullable
V v1,
@Nullable
K k2,
@Nullable
V v2,
@Nullable
K k3,
@Nullable
V v3)
BiMap instance containing the given
key-value pairs.
ImmutableBiMapBuilder
public static <K,V> BiMap<K,V> immutableBiMap(@Nullable
K k1,
@Nullable
V v1,
@Nullable
K k2,
@Nullable
V v2,
@Nullable
K k3,
@Nullable
V v3,
@Nullable
K k4,
@Nullable
V v4)
BiMap instance containing the given
key-value pairs.
ImmutableBiMapBuilder
public static <K,V> BiMap<K,V> immutableBiMap(@Nullable
K k1,
@Nullable
V v1,
@Nullable
K k2,
@Nullable
V v2,
@Nullable
K k3,
@Nullable
V v3,
@Nullable
K k4,
@Nullable
V v4,
@Nullable
K k5,
@Nullable
V v5)
BiMap instance containing the given
key-value pairs.
ImmutableBiMapBuilderpublic static <K,V> BiMap<K,V> synchronizedBiMap(BiMap<K,V> bimap)
It is imperative that the user manually synchronize on the returned map when accessing any of its collection views:
Bimap<K,V> m = Maps.synchronizedBiMap(
new HashBiMap<K,V>());
...
Set<K> s = m.keySet(); // Needn't be in synchronized block
...
synchronized (m) { // Synchronizing on m, not s!
Iterator<K> i = s.iterator(); // Must be in synchronized block
while (i.hasNext()) {
foo(i.next());
}
}
Failure to follow this advice may result in non-deterministic behavior.
bimap - the bimap to be wrapped in a synchronized view
public static <K,V> java.util.SortedSet<K> sortedKeySet(java.util.SortedMap<K,V> map)
remove operation),
the results of the iteration are undefined. The set supports element
removal, which removes the corresponding mapping from the map, via the
Iterator.remove, Set.remove, removeAll, removeAll, and clear operations. It does not support the add or
addAll operations.
public static <K,V> java.util.Map<K,V> uniqueIndex(java.lang.Iterable<? extends V> values,
Function<? super V,? extends K> keyFunction)
Map that contains the results of applying a
specified function to each item in an Iterable of values. Each
value will be stored as a value in the resulting map. The key used to store
that value in the map will be the result of calling the function on that
value. Neither keys nor values are allowed to be null. It is an error if
the function produces the same key for more than one value in the input
collection.
values - the values to use when constructing the MapkeyFunction - the function used to produce the key for each value
keyFunction on each value in the input collection to that value
java.lang.IllegalArgumentException - if keyFunction produces the same
key for more than one value in the input collection
java.lang.NullPointerException - if any elements of values are null, or
if keyFunction produces null for any value
public static <K,V> java.util.Map<K,V> uniqueIndex(java.util.Collection<? extends V> values,
Function<? super V,? extends K> keyFunction)
Map that contains the results of applying a
specified function to each item in a Collection of values. Each
value will be stored as a value in the resulting map. The key used to store
that value in the map will be the result of calling the function on that
value. Neither keys nor values are allowed to be null. It is an error if
the function produces the same key for more than one value in the input
collection.
values - the values to use when constructing the MapkeyFunction - the function used to produce the key for each value
Map mapping the result of evaluating the function keyFunction on each value in the input collection to that value
java.lang.IllegalArgumentException - if keyFunction produces the same
key for more than one value in the input collection
java.lang.NullPointerException - if any elements of values are null, or
if keyFunction produces null for any value
public static <K,V> java.util.Map<K,V> uniqueIndex(java.util.Iterator<? extends V> values,
Function<? super V,? extends K> keyFunction)
Map that contains the results of applying a
specified function to each item in an Iterator of values. Each
value will be stored as a value in the resulting map. The key used to store
that value in the map will be the result of calling the function on that
value. Neither keys nor values are allowed to be null. It is an error if
the function produces the same key for more than one value in the input
collection.
values - the values to use when constructing the MapkeyFunction - the function used to produce the key for each value
Map mapping the result of evaluating the function keyFunction on each value in the input collection to that value
java.lang.IllegalArgumentException - if keyFunction produces the same
key for more than one value in the input collection
java.lang.NullPointerException - if any elements of values are null, or
if keyFunction produces null for any valuepublic static java.util.Map<java.lang.String,java.lang.String> fromProperties(java.util.Properties properties)
Map<String, String> from a Properties instance.
Properties normally derive from Map<Object, Object>, but they
typically contain strings, which is awkward. This method lets you get a
plain-old-Map out of a Properties. The returned map won't
include any null keys or values.
properties - a Properties object to be converted
properties
public static <K,V> java.util.Map.Entry<K,V> immutableEntry(@Nullable
K key,
@Nullable
V value)
Map.Entry.setValue(V) operation throws an UnsupportedOperationException.
The returned entry is serializable.
key - the key to be associated with the returned entryvalue - the value to be associated with the returned entrypublic static <K,V> HashBiMap<K,V> newHashBiMap()
HashBiMap with the default initial capacity
(16) and load factor (0.75).
public static <K extends java.lang.Enum<K>,V> EnumHashBiMap<K,V> newEnumHashBiMap(java.lang.Class<K> keyType)
EnumHashBiMap using the specified key type.
keyType - the key type
public static <K extends java.lang.Enum<K>,V extends java.lang.Enum<V>> EnumBiMap<K,V> newEnumBiMap(java.lang.Class<K> keyType,
java.lang.Class<V> valueType)
EnumBiMap using the specified key type and
value type.
keyType - the key typevalueType - the value type
public static <K,V> BiMap<K,V> newBiMap(java.util.Map<K,V> forward,
java.util.Map<V,K> backward)
BiMap, backed by the two supplied empty maps. The
caller surrenders control of these maps and should not retain any
references to either.
The returned bimap will be serializable if both of the specified maps are serializable.
forward - an empty map to be used for associating keys with valuesbackward - an empty map to be used for associating values with keys
java.lang.IllegalArgumentException - if either map is nonemptypublic static <K,V> BiMap<K,V> unmodifiableBiMap(BiMap<K,V> bimap)
UnsupportedOperationException.
The returned bimap will be serializable if the specified bimap is serializable.
bimap - the bimap for which an unmodifiable view is to be returned
public static <B> ClassToInstanceMap<B> newClassToInstanceMap()
ClassToInstanceMap instance backed by a HashMap using the default initial capacity and load factor.
public static <B> ClassToInstanceMap<B> newClassToInstanceMap(java.util.Map<java.lang.Class<? extends B>,B> backingMap)
ClassToInstanceMap instance backed by a given empty
backingMap. The caller surrenders control of the backing map, and
thus should not allow any direct references to it to remain accessible.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||