Class 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