Stream.Builder (Java SE 12 & JDK 12 )
-
- Type Parameters:
T- the type of stream elements
- All Superinterfaces:
Consumer<T>
public static interface Stream.Builder<T> extends Consumer<T>
A mutable builder for a
Stream. This allows the creation of aStreamby generating elements individually and adding them to theBuilder(without the copying overhead that comes from using anArrayListas 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 orderedStreamwhose elements are the elements that were added to the stream builder, in the order they were added.- Since:
- 1.8
- See Also:
Stream.builder()
-
-
Method Detail
-
accept
void accept(T t)
Adds an element to the stream being built.
- Specified by:
acceptin interfaceConsumer<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:
thisbuilder- 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
IllegalStateExceptionis 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
-
-
Report a bug or suggest an enhancement
For further API reference and developer documentation see the Java SE Documentation, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2019, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
All rights reserved. Use is subject to license terms and the documentation redistribution policy.