W3cubDocs

/OpenJDK 8

Interface Stream.Builder<T>

Type Parameters:
T - the type of stream elements
All Superinterfaces:
Consumer<T>
Enclosing interface:
Stream<T>
public static interface Stream.Builder<T>
extends Consumer<T>

A mutable builder for a Stream. This allows the creation of a Stream by generating elements individually and adding them to the Builder (without the copying overhead that comes from using an ArrayList as a temporary buffer.)

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:
Stream.builder()

Methods

accept

void accept(T t)

Adds an element to the stream being built.

Specified by:
accept in interface Consumer<T>
Parameters:
t - the input argument
Throws:
IllegalStateException - if the builder has already transitioned to the built state

add

default Stream.Builder<T> add(T 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

Stream<T> 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

© 1993–2017, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.