# Interface DoubleStream.Builder

All Superinterfaces:
  `DoubleConsumer`

Enclosing interface:
  `DoubleStream`

public static interface DoubleStream.Builder extends DoubleConsumer
A mutable builder for a `DoubleStream`.

A stream builder has a lifecycle, which starts in a building phase, during which elements can be added, and then transitions to a built phase, after which elements may not be added. The built phase begins when the `build()` method is called, which creates an ordered stream whose elements are the elements that were added to the stream builder, in the order they were added.

Since:
  1.8
See Also:
  - `DoubleStream.builder()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `accept(double t)`
  Adds an element to the stream being built.
  `default DoubleStream.Builder`
  `add(double t)`
  Adds an element to the stream being built.
  `DoubleStream`
  `build()`
  Builds the stream, transitioning this builder to the built state.

  ### Methods declared in interface DoubleConsumer

  `andThen`
  Modifier and Type
  Method
  Description
  `default DoubleConsumer`
  `andThen(DoubleConsumer after)`
  Returns a composed `DoubleConsumer` that performs, in sequence, this operation followed by the `after` operation.

- ## Method Details

  - ### accept

    void accept(double t)
    Adds an element to the stream being built.
    Specified by:
      `accept` in interface `DoubleConsumer`
    Parameters:
      `t` - the input argument
    Throws:
      `IllegalStateException` - if the builder has already transitioned to the built state

  - ### add

    default DoubleStream.Builder add(double t)
    Adds an element to the stream being built.
    Implementation Requirements:
      The default implementation behaves as if:

              accept(t)
              return this;

    Parameters:
      `t` - the element to add
    Returns:
      `this` builder
    Throws:
      `IllegalStateException` - if the builder has already transitioned to the built state

  - ### build

    DoubleStream build()
    Builds the stream, transitioning this builder to the built state. An `IllegalStateException` is thrown if there are further attempts to operate on the builder after it has entered the built state.
    Returns:
      the built stream
    Throws:
      `IllegalStateException` - if the builder has already transitioned to the built state