K0
- An upper bound on the key type of the generated multimap.V0
- An upper bound on the value type of the generated multimap.@GwtCompatible public abstract class MultimapBuilder<K0,V0> extends Object
This can be used to easily configure multimap data structure implementations not provided
explicitly in com.google.common.collect
, for example:
ListMultimap<String, Integer> treeListMultimap =
MultimapBuilder.treeKeys().arrayListValues().build();
SetMultimap<Integer, MyEnum> hashEnumMultimap =
MultimapBuilder.hashKeys().enumSetValues(MyEnum.class).build();
MultimapBuilder
instances are immutable. Invoking a configuration method has no effect
on the receiving instance; you must store and use the new builder instance it returns instead.
The generated multimaps are serializable if the key and value types are serializable, unless stated otherwise in one of the configuration methods.
Modifier and Type | Class and Description |
---|---|
static class |
MultimapBuilder.ListMultimapBuilder<K0,V0>
A specialization of
MultimapBuilder that generates ListMultimap instances. |
static class |
MultimapBuilder.MultimapBuilderWithKeys<K0>
An intermediate stage in a
MultimapBuilder in which the key-value collection map
implementation has been specified, but the value collection implementation has not. |
static class |
MultimapBuilder.SetMultimapBuilder<K0,V0>
A specialization of
MultimapBuilder that generates SetMultimap instances. |
static class |
MultimapBuilder.SortedSetMultimapBuilder<K0,V0>
A specialization of
MultimapBuilder that generates SortedSetMultimap instances. |
Modifier and Type | Method and Description |
---|---|
abstract <K extends K0,V extends V0> |
build()
Returns a new, empty
Multimap with the specified implementation. |
<K extends K0,V extends V0> |
build(Multimap<? extends K,? extends V> multimap)
Returns a
Multimap with the specified implementation, initialized with the entries of
multimap . |
static <K0 extends Enum<K0>> |
enumKeys(Class<K0> keyClass)
Uses an
EnumMap to map keys to value collections. |
static MultimapBuilder.MultimapBuilderWithKeys<Object> |
hashKeys()
Uses a hash table to map keys to value collections.
|
static MultimapBuilder.MultimapBuilderWithKeys<Object> |
hashKeys(int expectedKeys)
Uses a hash table to map keys to value collections, initialized to expect the specified number
of keys.
|
static MultimapBuilder.MultimapBuilderWithKeys<Object> |
linkedHashKeys()
Uses a hash table to map keys to value collections.
|
static MultimapBuilder.MultimapBuilderWithKeys<Object> |
linkedHashKeys(int expectedKeys)
Uses an hash table to map keys to value collections, initialized to expect the specified number
of keys.
|
static MultimapBuilder.MultimapBuilderWithKeys<Comparable> |
treeKeys()
Uses a naturally-ordered
TreeMap to map keys to value collections. |
static <K0> MultimapBuilder.MultimapBuilderWithKeys<K0> |
treeKeys(Comparator<K0> comparator)
Uses a
TreeMap sorted by the specified comparator to map keys to value collections. |
public static MultimapBuilder.MultimapBuilderWithKeys<Object> hashKeys()
public static MultimapBuilder.MultimapBuilderWithKeys<Object> hashKeys(int expectedKeys)
IllegalArgumentException
- if expectedKeys < 0
public static MultimapBuilder.MultimapBuilderWithKeys<Object> linkedHashKeys()
The collections returned by Multimap.keySet()
, Multimap.keys()
, and Multimap.asMap()
will iterate through the keys in the order that they were first added to the
multimap, save that if all values associated with a key are removed and then the key is added
back into the multimap, that key will come last in the key iteration order.
public static MultimapBuilder.MultimapBuilderWithKeys<Object> linkedHashKeys(int expectedKeys)
The collections returned by Multimap.keySet()
, Multimap.keys()
, and Multimap.asMap()
will iterate through the keys in the order that they were first added to the
multimap, save that if all values associated with a key are removed and then the key is added
back into the multimap, that key will come last in the key iteration order.
public static MultimapBuilder.MultimapBuilderWithKeys<Comparable> treeKeys()
TreeMap
to map keys to value collections.
The collections returned by Multimap.keySet()
, Multimap.keys()
, and Multimap.asMap()
will iterate through the keys in sorted order.
For all multimaps generated by the resulting builder, the Multimap.keySet()
can be
safely cast to a SortedSet
, and the Multimap.asMap()
can safely be
cast to a SortedMap
.
public static <K0> MultimapBuilder.MultimapBuilderWithKeys<K0> treeKeys(Comparator<K0> comparator)
TreeMap
sorted by the specified comparator to map keys to value collections.
The collections returned by Multimap.keySet()
, Multimap.keys()
, and Multimap.asMap()
will iterate through the keys in sorted order.
For all multimaps generated by the resulting builder, the Multimap.keySet()
can be
safely cast to a SortedSet
, and the Multimap.asMap()
can safely be
cast to a SortedMap
.
Multimaps generated by the resulting builder will not be serializable if comparator
is not serializable.
public static <K0 extends Enum<K0>> MultimapBuilder.MultimapBuilderWithKeys<K0> enumKeys(Class<K0> keyClass)
EnumMap
to map keys to value collections.public abstract <K extends K0,V extends V0> Multimap<K,V> build()
Multimap
with the specified implementation.Copyright © 2010–2019. All rights reserved.