|
|||||||||
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(Map<?,?> map,
Object key,
Object value)
Returns true if map contains an entry mapping key
to value . |
|
static Map<String,String> |
fromProperties(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(Map<K,V> forward,
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(Map<Class<? extends B>,B> backingMap)
Returns a new ClassToInstanceMap instance backed by a given empty
backingMap . |
|
static
|
newConcurrentHashMap()
Creates a ConcurrentHashMap instance. |
|
static
|
newEnumBiMap(Class<K> keyType,
Class<V> valueType)
Returns a new empty EnumBiMap using the specified key type and
value type. |
|
static
|
newEnumHashBiMap(Class<K> keyType)
Returns a new empty EnumHashBiMap using the specified key type. |
|
static
|
newEnumMap(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(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(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(Comparator<C> comparator)
Creates a TreeMap instance using the given comparator. |
|
static
|
sortedKeySet(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(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(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(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> 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.
HashMap
public static <K,V> 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
IllegalArgumentException
- if expectedSize
is negativepublic static <K,V> HashMap<K,V> newHashMap(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
map
public static <K,V> LinkedHashMap<K,V> newLinkedHashMap()
LinkedHashMap
instance.
LinkedHashMap
public static <K,V> LinkedHashMap<K,V> newLinkedHashMap(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 map
public static <K,V> ConcurrentHashMap<K,V> newConcurrentHashMap()
ConcurrentHashMap
instance.
ConcurrentHashMap
public static <K extends Comparable,V> TreeMap<K,V> newTreeMap()
TreeMap
instance using the natural ordering of its
elements.
TreeMap
public static <C,K extends C,V> TreeMap<K,V> newTreeMap(@Nullable Comparator<C> comparator)
TreeMap
instance using the given comparator.
comparator
- the Comparator to sort the keys with
TreeMap
public static <K extends Enum<K>,V> EnumMap<K,V> newEnumMap(Class<K> type)
EnumMap
instance.
type
- the key type for this map
EnumMap
public static <K,V> IdentityHashMap<K,V> newIdentityHashMap()
IdentityHashMap
instance.
IdentityHashMap
public static boolean containsEntry(Map<?,?> map, @Nullable Object key, @Nullable 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.
ImmutableBiMapBuilder
public 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> SortedSet<K> sortedKeySet(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> Map<K,V> uniqueIndex(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 Map
keyFunction
- the function used to produce the key for each value
keyFunction
on each value in the input collection to that value
IllegalArgumentException
- if keyFunction
produces the same
key for more than one value in the input collection
NullPointerException
- if any elements of values
are null, or
if keyFunction
produces null
for any valuepublic static <K,V> Map<K,V> uniqueIndex(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 Map
keyFunction
- 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
IllegalArgumentException
- if keyFunction
produces the same
key for more than one value in the input collection
NullPointerException
- if any elements of values
are null, or
if keyFunction
produces null
for any valuepublic static <K,V> Map<K,V> uniqueIndex(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 Map
keyFunction
- 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
IllegalArgumentException
- if keyFunction
produces the same
key for more than one value in the input collection
NullPointerException
- if any elements of values
are null, or
if keyFunction
produces null
for any valuepublic static Map<String,String> fromProperties(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> 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 Enum<K>,V> EnumHashBiMap<K,V> newEnumHashBiMap(Class<K> keyType)
EnumHashBiMap
using the specified key type.
keyType
- the key typepublic static <K extends Enum<K>,V extends Enum<V>> EnumBiMap<K,V> newEnumBiMap(Class<K> keyType, Class<V> valueType)
EnumBiMap
using the specified key type and
value type.
keyType
- the key typevalueType
- the value typepublic static <K,V> BiMap<K,V> newBiMap(Map<K,V> forward, 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
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(Map<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 |