com.google.common.collect
Class ImmutableMap.Builder<K,V>

java.lang.Object
  extended by com.google.common.collect.ImmutableMap.Builder<K,V>
Enclosing class:
ImmutableMap<K,V>

public static final class ImmutableMap.Builder<K,V>
extends Object

A builder for creating immutable map instances, especially public static final maps ("constant maps"). Code such as

   static final Map<String, Integer> ENGLISH_TO_INTEGER_MAP
       = createNumbersMap();

   static Map<String, Integer> createNumbersMap() {
     Map<String, Integer> map = Maps.newHashMap();
     map.put("one", 1);
     map.put("two", 2);
     map.put("three", 3);
     return Collections.unmodifiableMap(map);
   }
 
... can be rewritten as ...
   static final ImmutableMap<String, Integer> ENGLISH_TO_INTEGER_MAP
       = new ImmutableMap.Builder<String, Integer>()
           .put("one", 1)
           .put("two", 2)
           .put("three", 3)
           .build();
 
For small immutable maps, the ImmutableMap.of() methods are even more convienient.

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


Constructor Summary
ImmutableMap.Builder()
           
 
Method Summary
 ImmutableMap<K,V> build()
          Returns a newly-created immutable map.
 ImmutableMap.Builder<K,V> put(K key, V value)
          Associates key with value in the built map.
 ImmutableMap.Builder<K,V> putAll(Map<? extends K,? extends V> map)
          Associates all of map's keys and values in the built map.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ImmutableMap.Builder

public ImmutableMap.Builder()
Method Detail

put

public ImmutableMap.Builder<K,V> put(K key,
                                     V value)
Associates key with value in the built map. Duplicate keys are not allowed, and will cause build() to fail.


putAll

public ImmutableMap.Builder<K,V> putAll(Map<? extends K,? extends V> map)
Associates all of map's keys and values in the built map. Duplicate keys are not allowed, and will cause build() to fail.

Throws:
NullPointerException - if any key or value in map is null

build

public ImmutableMap<K,V> build()
Returns a newly-created immutable map.

Throws:
IllegalArgumentException - if duplicate keys were added