- Type Parameters:
K0
- An upper bound on the key type of the generated multimap.V0
- An upper bound on the value type of the generated multimap.
- Direct Known Subclasses:
MultimapBuilder.ListMultimapBuilder
,MultimapBuilder.SetMultimapBuilder
Multimap
instances, letting you independently select the desired
behaviors (for example, ordering) of the backing map and value-collections. Example:
ListMultimap<UserId, ErrorResponse> errorsByUser =
MultimapBuilder.linkedHashKeys().arrayListValues().build();
SortedSetMultimap<String, Method> methodsForName =
MultimapBuilder.treeKeys().treeSetValues(this::compareMethods).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.
- Since:
- 16.0
- Author:
- Louis Wasserman
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
A specialization ofMultimapBuilder
that generatesListMultimap
instances.static class
An intermediate stage in aMultimapBuilder
in which the key-value collection map implementation has been specified, but the value collection implementation has not.static class
A specialization ofMultimapBuilder
that generatesSetMultimap
instances.static class
A specialization ofMultimapBuilder
that generatesSortedSetMultimap
instances. -
Method Summary
Modifier and TypeMethodDescriptionbuild()
Returns a new, emptyMultimap
with the specified implementation.Returns aMultimap
with the specified implementation, initialized with the entries ofmultimap
.static <K0 extends Enum<K0>>
MultimapBuilder.MultimapBuilderWithKeys<K0> Uses anEnumMap
to map keys to value collections.hashKeys()
Uses a hash table to map keys to value collections.hashKeys
(int expectedKeys) Uses a hash table to map keys to value collections, initialized to expect the specified number of keys.Uses a hash table to map keys to value collections.linkedHashKeys
(int expectedKeys) Uses an hash table to map keys to value collections, initialized to expect the specified number of keys.treeKeys()
Uses a naturally-orderedTreeMap
to map keys to value collections.static <K0 extends @Nullable Object>
MultimapBuilder.MultimapBuilderWithKeys<K0> treeKeys
(Comparator<K0> comparator) Uses aTreeMap
sorted by the specified comparator to map keys to value collections.
-
Method Details
-
hashKeys
Uses a hash table to map keys to value collections. -
hashKeys
Uses a hash table to map keys to value collections, initialized to expect the specified number of keys.- Throws:
IllegalArgumentException
- ifexpectedKeys < 0
-
linkedHashKeys
Uses a hash table to map keys to value collections.The collections returned by
Multimap.keySet()
,Multimap.keys()
, andMultimap.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. -
linkedHashKeys
public static MultimapBuilder.MultimapBuilderWithKeys<@Nullable Object> linkedHashKeys(int expectedKeys) Uses an hash table to map keys to value collections, initialized to expect the specified number of keys.The collections returned by
Multimap.keySet()
,Multimap.keys()
, andMultimap.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. -
treeKeys
Uses a naturally-orderedTreeMap
to map keys to value collections.The collections returned by
Multimap.keySet()
,Multimap.keys()
, andMultimap.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 aSortedSet
, and theMultimap.asMap()
can safely be cast to aSortedMap
. -
treeKeys
public static <K0 extends @Nullable Object> MultimapBuilder.MultimapBuilderWithKeys<K0> treeKeys(Comparator<K0> comparator) Uses aTreeMap
sorted by the specified comparator to map keys to value collections.The collections returned by
Multimap.keySet()
,Multimap.keys()
, andMultimap.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 aSortedSet
, and theMultimap.asMap()
can safely be cast to aSortedMap
.Multimaps generated by the resulting builder will not be serializable if
comparator
is not serializable. -
enumKeys
public static <K0 extends Enum<K0>> MultimapBuilder.MultimapBuilderWithKeys<K0> enumKeys(Class<K0> keyClass) Uses anEnumMap
to map keys to value collections.- Since:
- 16.0
-
build
-
build
-