com.google.common.collect

## Class ImmutableList.Builder<E>

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

- Enclosing class:
    ImmutableList<E>

      public static final class ImmutableList.Builder<E>
      extends ImmutableCollection.Builder<E>

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

         public static final ImmutableList<Color> GOOGLE_COLORS
             = new ImmutableList.Builder<Color>()
                 .addAll(WEBSAFE_COLORS)
                 .add(new Color(0, 191, 255))
                 .build();

  Builder instances can be reused; it is safe to call `build()` multiple times to build multiple lists in series. Each new list contains all the elements of the ones created before it.

  Since:
    2.0

- - ### Constructor Summary

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ImmutableList.Builder<E>` | `add(E... elements)` Adds each element of `elements` to the `ImmutableList`.
    `ImmutableList.Builder<E>` | `add(E element)` Adds `element` to the `ImmutableList`.
    `ImmutableList.Builder<E>` | `addAll(java.lang.Iterable<? extends E> elements)` Adds each element of `elements` to the `ImmutableList`.
    `ImmutableList.Builder<E>` | `addAll(java.util.Iterator<? extends E> elements)` Adds each element of `elements` to the `ImmutableList`.
    `ImmutableList<E>` | `build()` Returns a newly-created `ImmutableList` based on the contents of the `Builder`.

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

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

- - ### Constructor Detail

    - #### ImmutableList.Builder

          public ImmutableList.Builder()

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

  - ### Method Detail

    - #### add

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

      Adds `element` to the `ImmutableList`.
      Parameters:
        `element` - the element to add
      Returns:
        this `Builder` object
      Throws:
        `java.lang.NullPointerException` - if `element` is null

    - #### addAll

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

      Adds each element of `elements` to the `ImmutableList`.
      Parameters:
        `elements` - the `Iterable` to add to the `ImmutableList`
      Returns:
        this `Builder` object
      Throws:
        `java.lang.NullPointerException` - if `elements` is null or contains a null element

    - #### add

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

      Adds each element of `elements` to the `ImmutableList`.
      Parameters:
        `elements` - the `Iterable` to add to the `ImmutableList`
      Returns:
        this `Builder` object
      Throws:
        `java.lang.NullPointerException` - if `elements` is null or contains a null element

    - #### addAll

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

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

    - #### build

          public ImmutableList<E> build()

      Returns a newly-created `ImmutableList` based on the contents of the `Builder`.
      Specified by:
        `build` in class `ImmutableCollection.Builder<E>`