ImmutableSetMultimap.Builder
Date: 2016-05-24

com.google.common.collect

## Class ImmutableSetMultimap.Builder<K,V>

- java.lang.Object
- - com.google.common.collect.ImmutableMultimap.Builder<K,V>
  - - com.google.common.collect.ImmutableSetMultimap.Builder<K,V>

- Enclosing class:
    ImmutableSetMultimap<K,V>

      public static final class ImmutableSetMultimap.Builder<K,V>
      extends ImmutableMultimap.Builder<K,V>

  A builder for creating immutable `SetMultimap` instances, especially `public static final` multimaps ("constant multimaps"). Example:

         static final Multimap<String, Integer> STRING_TO_INTEGER_MULTIMAP =
             new ImmutableSetMultimap.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

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ImmutableSetMultimap.Builder()` Creates a new builder.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ImmutableSetMultimap<K,V>` | `build()` Returns a newly-created immutable set multimap.
    `ImmutableSetMultimap.Builder<K,V>` | `orderKeysBy(java.util.Comparator<? super K> keyComparator)` Specifies the ordering of the generated multimap's keys.
    `ImmutableSetMultimap.Builder<K,V>` | `orderValuesBy(java.util.Comparator<? super V> valueComparator)` Specifies the ordering of the generated multimap's values for each key.
    `ImmutableSetMultimap.Builder<K,V>` | `put(K key, V value)` Adds a key-value mapping to the built multimap if it is not already present.
    `ImmutableSetMultimap.Builder<K,V>` | `put(java.util.Map.Entry<? extends K,? extends V> entry)` Adds an entry to the built multimap if it is not already present.
    `ImmutableSetMultimap.Builder<K,V>` | `putAll(java.lang.Iterable<? extends java.util.Map.Entry<? extends K,? extends V>> entries)` Adds entries to the built multimap.
    `ImmutableSetMultimap.Builder<K,V>` | `putAll(K key, java.lang.Iterable<? extends V> values)` Stores a collection of values with the same key in the built multimap.
    `ImmutableSetMultimap.Builder<K,V>` | `putAll(K key, V... values)` Stores an array of values with the same key in the built multimap.
    `ImmutableSetMultimap.Builder<K,V>` | `putAll(Multimap<? extends K,? extends V> multimap)` Stores another multimap's entries in the built multimap.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ImmutableSetMultimap.Builder

          public ImmutableSetMultimap.Builder()

      Creates a new builder. The returned builder is equivalent to the builder generated by `ImmutableSetMultimap.builder()`.

  - ### Method Detail

    - #### put

          public ImmutableSetMultimap.Builder<K,V> put(K key,
                                              V value)

      Adds a key-value mapping to the built multimap if it is not already present.
      Overrides:
        `put` in class `ImmutableMultimap.Builder<K,V>`

    - #### put

          public ImmutableSetMultimap.Builder<K,V> put(java.util.Map.Entry<? extends K,? extends V> entry)

      Adds an entry to the built multimap if it is not already present.
      Overrides:
        `put` in class `ImmutableMultimap.Builder<K,V>`
      Since:
        11.0

    - #### putAll

          @Beta
          public ImmutableSetMultimap.Builder<K,V> putAll(java.lang.Iterable<? extends java.util.Map.Entry<? extends K,? extends V>> entries)

      Adds entries to the built multimap.
      Overrides:
        `putAll` in class `ImmutableMultimap.Builder<K,V>`
      Since:
        19.0

    - #### putAll

          public ImmutableSetMultimap.Builder<K,V> putAll(K key,
                                                 java.lang.Iterable<? extends V> values)

      Description copied from class: `ImmutableMultimap.Builder`
      Stores a collection of values with the same key in the built multimap.
      Overrides:
        `putAll` in class `ImmutableMultimap.Builder<K,V>`

    - #### putAll

          public ImmutableSetMultimap.Builder<K,V> putAll(K key,
                                                 V... values)

      Description copied from class: `ImmutableMultimap.Builder`
      Stores an array of values with the same key in the built multimap.
      Overrides:
        `putAll` in class `ImmutableMultimap.Builder<K,V>`

    - #### putAll

          public ImmutableSetMultimap.Builder<K,V> putAll(Multimap<? extends K,? extends V> multimap)

      Description copied from class: `ImmutableMultimap.Builder`
      Stores another multimap's entries in the built multimap. The generated multimap's key and value orderings correspond to the iteration ordering of the `multimap.asMap()` view, with new keys and values following any existing keys and values.
      Overrides:
        `putAll` in class `ImmutableMultimap.Builder<K,V>`

    - #### orderKeysBy

          public ImmutableSetMultimap.Builder<K,V> orderKeysBy(java.util.Comparator<? super K> keyComparator)

      Specifies the ordering of the generated multimap's keys.
      Overrides:
        `orderKeysBy` in class `ImmutableMultimap.Builder<K,V>`
      Since:
        8.0

    - #### orderValuesBy

          public ImmutableSetMultimap.Builder<K,V> orderValuesBy(java.util.Comparator<? super V> valueComparator)

      Specifies the ordering of the generated multimap's values for each key.

      If this method is called, the sets returned by the `get()` method of the generated multimap and its `Multimap.asMap()` view are `ImmutableSortedSet` instances. However, serialization does not preserve that property, though it does maintain the key and value ordering.

      Overrides:
        `orderValuesBy` in class `ImmutableMultimap.Builder<K,V>`
      Since:
        8.0

    - #### build

          public ImmutableSetMultimap<K,V> build()

      Returns a newly-created immutable set multimap.
      Overrides:
        `build` in class `ImmutableMultimap.Builder<K,V>`