ImmutableSortedMultiset.Builder
Date: 2016-05-24

com.google.common.collect

## Class ImmutableSortedMultiset.Builder<E>

- java.lang.Object
- - com.google.common.collect.ImmutableCollection.Builder<E>
  - - com.google.common.collect.ImmutableMultiset.Builder<E>
    - - com.google.common.collect.ImmutableSortedMultiset.Builder<E>

- Enclosing class:
    ImmutableSortedMultiset<E>

      public static class ImmutableSortedMultiset.Builder<E>
      extends ImmutableMultiset.Builder<E>

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

       public static final ImmutableSortedMultiset<Bean> BEANS =
             new ImmutableSortedMultiset.Builder<Bean>()
                 .addCopies(Bean.COCOA, 4)
                 .addCopies(Bean.GARDEN, 6)
                 .addCopies(Bean.RED, 8)
                 .addCopies(Bean.BLACK_EYED, 10)
                 .build();

  Builder instances can be reused; it is safe to call `build()` multiple times to build multiple multisets in series.

  Since:
    12.0

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ImmutableSortedMultiset.Builder(java.util.Comparator<? super E> comparator)` Creates a new builder.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ImmutableSortedMultiset.Builder<E>` | `add(E... elements)` Adds each element of `elements` to the `ImmutableSortedMultiset`.
    `ImmutableSortedMultiset.Builder<E>` | `add(E element)` Adds `element` to the `ImmutableSortedMultiset`.
    `ImmutableSortedMultiset.Builder<E>` | `addAll(java.lang.Iterable<? extends E> elements)` Adds each element of `elements` to the `ImmutableSortedMultiset`.
    `ImmutableSortedMultiset.Builder<E>` | `addAll(java.util.Iterator<? extends E> elements)` Adds each element of `elements` to the `ImmutableSortedMultiset`.
    `ImmutableSortedMultiset.Builder<E>` | `addCopies(E element, int occurrences)` Adds a number of occurrences of an element to this `ImmutableSortedMultiset`.
    `ImmutableSortedMultiset<E>` | `build()` Returns a newly-created `ImmutableSortedMultiset` based on the contents of the `Builder`.
    `ImmutableSortedMultiset.Builder<E>` | `setCount(E element, int count)` Adds or removes the necessary occurrences of an element such that the element attains the desired count.

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

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

- - ### Constructor Detail

    - #### ImmutableSortedMultiset.Builder

          public ImmutableSortedMultiset.Builder(java.util.Comparator<? super E> comparator)

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

  - ### Method Detail

    - #### add

          public ImmutableSortedMultiset.Builder<E> add(E element)

      Adds `element` to the `ImmutableSortedMultiset`.
      Overrides:
        `add` in class `ImmutableMultiset.Builder<E>`
      Parameters:
        `element` - the element to add
      Returns:
        this `Builder` object
      Throws:
        `java.lang.NullPointerException` - if `element` is null

    - #### addCopies

          public ImmutableSortedMultiset.Builder<E> addCopies(E element,
                                                     int occurrences)

      Adds a number of occurrences of an element to this `ImmutableSortedMultiset`.
      Overrides:
        `addCopies` in class `ImmutableMultiset.Builder<E>`
      Parameters:
        `element` - the element to add
        `occurrences` - the number of occurrences of the element to add. May be zero, in which case no change will be made.
      Returns:
        this `Builder` object
      Throws:
        `java.lang.NullPointerException` - if `element` is null
        `java.lang.IllegalArgumentException` - if `occurrences` is negative, or if this operation would result in more than `Integer.MAX_VALUE` occurrences of the element

    - #### setCount

          public ImmutableSortedMultiset.Builder<E> setCount(E element,
                                                    int count)

      Adds or removes the necessary occurrences of an element such that the element attains the desired count.
      Overrides:
        `setCount` in class `ImmutableMultiset.Builder<E>`
      Parameters:
        `element` - the element to add or remove occurrences of
        `count` - the desired count of the element in this multiset
      Returns:
        this `Builder` object
      Throws:
        `java.lang.NullPointerException` - if `element` is null
        `java.lang.IllegalArgumentException` - if `count` is negative

    - #### add

          public ImmutableSortedMultiset.Builder<E> add(E... elements)

      Adds each element of `elements` to the `ImmutableSortedMultiset`.
      Overrides:
        `add` in class `ImmutableMultiset.Builder<E>`
      Parameters:
        `elements` - the elements to add
      Returns:
        this `Builder` object
      Throws:
        `java.lang.NullPointerException` - if `elements` is null or contains a null element

    - #### addAll

          public ImmutableSortedMultiset.Builder<E> addAll(java.lang.Iterable<? extends E> elements)

      Adds each element of `elements` to the `ImmutableSortedMultiset`.
      Overrides:
        `addAll` in class `ImmutableMultiset.Builder<E>`
      Parameters:
        `elements` - the `Iterable` to add to the `ImmutableSortedMultiset`
      Returns:
        this `Builder` object
      Throws:
        `java.lang.NullPointerException` - if `elements` is null or contains a null element

    - #### addAll

          public ImmutableSortedMultiset.Builder<E> addAll(java.util.Iterator<? extends E> elements)

      Adds each element of `elements` to the `ImmutableSortedMultiset`.
      Overrides:
        `addAll` in class `ImmutableMultiset.Builder<E>`
      Parameters:
        `elements` - the elements to add to the `ImmutableSortedMultiset`
      Returns:
        this `Builder` object
      Throws:
        `java.lang.NullPointerException` - if `elements` is null or contains a null element

    - #### build

          public ImmutableSortedMultiset<E> build()

      Returns a newly-created `ImmutableSortedMultiset` based on the contents of the `Builder`.
      Overrides:
        `build` in class `ImmutableMultiset.Builder<E>`