Package com.google.common.collect
Class ImmutableMultimap.Builder<K,V>
java.lang.Object
com.google.common.collect.ImmutableMultimap.Builder<K,V>
- Direct Known Subclasses:
ImmutableListMultimap.Builder
,ImmutableSetMultimap.Builder
- Enclosing class:
ImmutableMultimap<K,
V>
A builder for creating immutable multimap instances, especially
public static final
multimaps ("constant multimaps"). Example:
static final Multimap<String, Integer> STRING_TO_INTEGER_MULTIMAP =
new ImmutableMultimap.Builder<String, Integer>()
.put("one", 1)
.putAll("several", 1, 2, 3)
.putAll("many", 1, 2, 3, 4, 5)
.build();
Builder instances can be reused; it is safe to call build()
multiple times to build
multiple multimaps in series. Each multimap contains the key-value mappings in the previously
created multimaps.
- Since:
- 2.0
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) Map
<K, ImmutableCollection.Builder<V>> (package private) int
(package private) Comparator
<? super K> (package private) Comparator
<? super V> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbuild()
Returns a newly-created immutable multimap.(package private) ImmutableMultimap.Builder
<K, V> combine
(ImmutableMultimap.Builder<K, V> other) (package private) Map
<K, ImmutableCollection.Builder<V>> (package private) int
expectedValueCollectionSize
(int defaultExpectedValues, Iterable<?> values) By default, if we are handed a value collection bigger than expectedValuesPerKey, presize to accept that many elements.expectedValuesPerKey
(int expectedValuesPerKey) Provides a hint for how many values will be associated with each key newly added to the builder after this call.(package private) ImmutableCollection.Builder
<V> newValueCollectionBuilderWithExpectedSize
(int expectedSize) orderKeysBy
(Comparator<? super K> keyComparator) Specifies the ordering of the generated multimap's keys.orderValuesBy
(Comparator<? super V> valueComparator) Specifies the ordering of the generated multimap's values for each key.Adds an entry to the built multimap.Adds a key-value mapping to the built multimap.Stores another multimap's entries in the built multimap.Adds entries to the built multimap.Stores a collection of values with the same key in the built multimap.Stores an array of values with the same key in the built multimap.
-
Field Details
-
builderMap
-
keyComparator
-
valueComparator
-
expectedValuesPerKey
int expectedValuesPerKey
-
-
Constructor Details
-
Builder
public Builder()Creates a new builder. The returned builder is equivalent to the builder generated byImmutableMultimap.builder()
. -
Builder
Builder(int expectedKeys) Creates a new builder with a hint for the number of distinct keys.
-
-
Method Details
-
ensureBuilderMapNonNull
Map<K,ImmutableCollection.Builder<V>> ensureBuilderMapNonNull() -
newValueCollectionBuilderWithExpectedSize
-
expectedValuesPerKey
Provides a hint for how many values will be associated with each key newly added to the builder after this call. This does not change semantics, but may improve performance ifexpectedValuesPerKey
is a good estimate.This may be called more than once; each newly added key will use the most recent call to
expectedValuesPerKey
as its hint.- Throws:
IllegalArgumentException
- ifexpectedValuesPerKey
is negative- Since:
- 33.3.0
-
expectedValueCollectionSize
By default, if we are handed a value collection bigger than expectedValuesPerKey, presize to accept that many elements.This gets overridden in ImmutableSetMultimap.Builder to only trust the size of
values
if it is a Set and therefore probably already deduplicated. -
put
Adds a key-value mapping to the built multimap. -
put
Adds an entry to the built multimap.- Since:
- 11.0
-
putAll
public ImmutableMultimap.Builder<K,V> putAll(Iterable<? extends Map.Entry<? extends K, ? extends V>> entries) Adds entries to the built multimap.- Since:
- 19.0
-
putAll
Stores a collection of values with the same key in the built multimap.- Throws:
NullPointerException
- ifkey
,values
, or any element invalues
is null. The builder is left in an invalid state.
-
putAll
Stores an array of values with the same key in the built multimap.- Throws:
NullPointerException
- if the key or any value is null. The builder is left in an invalid state.
-
putAll
Stores another multimap's entries in the built multimap. The generated multimap's key and value orderings correspond to the iteration ordering of themultimap.asMap()
view, with new keys and values following any existing keys and values.- Throws:
NullPointerException
- if any key or value inmultimap
is null. The builder is left in an invalid state.
-
orderKeysBy
Specifies the ordering of the generated multimap's keys.- Since:
- 8.0
-
orderValuesBy
Specifies the ordering of the generated multimap's values for each key.- Since:
- 8.0
-
combine
-
build
Returns a newly-created immutable multimap.
-