T
- the type of the stream elementsS
- the type of of the stream implementing BaseStream
public interface BaseStream<T,S extends BaseStream<T,S>> extends AutoCloseable
Base interface for streams, which are sequences of elements supporting sequential and parallel aggregate operations. The following example illustrates an aggregate operation using the stream types Stream
and IntStream
, computing the sum of the weights of the red widgets:
int sum = widgets.stream() .filter(w -> w.getColor() == RED) .mapToInt(w -> w.getWeight()) .sum();See the class documentation for
Stream
and the package documentation for java.util.stream for additional specification of streams, stream operations, stream pipelines, and parallelism, which governs the behavior of all stream types. Stream
, IntStream
, LongStream
, DoubleStream
, java.util.stream
Iterator<T> iterator()
Returns an iterator for the elements of this stream.
This is a terminal operation.
Spliterator<T> spliterator()
Returns a spliterator for the elements of this stream.
This is a terminal operation.
boolean isParallel()
Returns whether this stream, if a terminal operation were to be executed, would execute in parallel. Calling this method after invoking an terminal stream operation method may yield unpredictable results.
true
if this stream would execute in parallel if executedS sequential()
Returns an equivalent stream that is sequential. May return itself, either because the stream was already sequential, or because the underlying stream state was modified to be sequential.
This is an intermediate operation.
S parallel()
Returns an equivalent stream that is parallel. May return itself, either because the stream was already parallel, or because the underlying stream state was modified to be parallel.
This is an intermediate operation.
S unordered()
Returns an equivalent stream that is unordered. May return itself, either because the stream was already unordered, or because the underlying stream state was modified to be unordered.
This is an intermediate operation.
S onClose(Runnable closeHandler)
Returns an equivalent stream with an additional close handler. Close handlers are run when the close()
method is called on the stream, and are executed in the order they were added. All close handlers are run, even if earlier close handlers throw exceptions. If any close handler throws an exception, the first exception thrown will be relayed to the caller of close()
, with any remaining exceptions added to that exception as suppressed exceptions (unless one of the remaining exceptions is the same exception as the first exception, since an exception cannot suppress itself.) May return itself.
This is an intermediate operation.
closeHandler
- A task to execute when the stream is closedvoid close()
Closes this stream, causing all close handlers for this stream pipeline to be called.
close
in interface AutoCloseable
AutoCloseable.close()
© 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.