Class ImmutableMap.Builder<K,V>

java.lang.Object
com.google.common.collect.ImmutableMap.Builder<K,V>
Direct Known Subclasses:
ImmutableBiMap.Builder, ImmutableSortedMap.Builder
Enclosing class:
ImmutableMap<K,V>

@DoNotMock public static class ImmutableMap.Builder<K,V> extends Object
A builder for creating immutable map instances, especially public static final maps ("constant maps"). Example:

 static final ImmutableMap<String, Integer> WORD_TO_INT =
     new ImmutableMap.Builder<String, Integer>()
         .put("one", 1)
         .put("two", 2)
         .put("three", 3)
         .buildOrThrow();
 

For small immutable maps, the ImmutableMap.of() methods are even more convenient.

By default, a Builder will generate maps that iterate over entries in the order they were inserted into the builder, equivalently to LinkedHashMap. For example, in the above example, WORD_TO_INT.entrySet() is guaranteed to iterate over the entries in the order "one"=1, "two"=2, "three"=3, and keySet() and values() respect the same order. If you want a different order, consider using ImmutableSortedMap to sort by keys, or call orderEntriesByValue(Comparator), which changes this builder to sort entries by value.

Builder instances can be reused - it is safe to call buildOrThrow() multiple times to build multiple maps in series. Each map is a superset of the maps created before it.

Since:
2.0
Author:
Jesse Wilson, Kevin Bourrillion