

This stream with the contents of a mapped stream produced by applying Returns a stream consisting of the results of replacing each element of (For example,Ĭollection.stream() creates a sequential stream,Ī parallel one.) This choice of execution mode may be modified by theīquential() or BaseStream.parallel() methods, and may be queried with With an initial choice of sequential or parallel execution. Stream pipelines may execute either sequentially or inĮxecution mode is a property of the stream. (If a stream does require closing, it can beĭeclared as a resource in a try-with-resources statement.) Most streamsĪre backed by collections, arrays, or generating functions, which require no Generally, only streams whose source is an IO channel (such as those returnedīy Files.lines(Path, Charset)) will require closing. Streams have a BaseStream.close() method and implement AutoCloseable,īut nearly all stream instances do not actually need to be closed after use. Not be possible to detect reuse in all cases. Operations may return their receiver rather than a new stream object, it may If it detects that the stream is being reused. A stream implementation may throw IllegalStateException The same source feeds two or more pipelines, or multiple traversals of the This rules out, for example, "forked" streams, where Unless otherwise specified these parameters must beĪ stream should be operated on (invoking an intermediate or terminal stream Such parameters are always instances of aĪs Function, and are often lambda expressions or (their result should not depend on any state that might change during execution (they do not modify the stream source) and Most stream operations accept parameters that describe user-specifiedīehavior, such as the lambda expression w -> w.getWeight() passed to Unpredictable or erroneous behavior may result from modifying the stream Unless the source was explicitlyĭesigned for concurrent modification (such as a ConcurrentHashMap), However, if the provided stream operations do not offer the desiredįunctionality, the erator() and BaseStream.spliterator() operationsĬan be used to perform a controlled traversal.Ī stream pipeline, like the "widgets" example above, can be viewed asĪ query on the stream source. Instead concerned with declaratively describing their source and theĬomputational operations which will be performed in aggregate on that source. Provide a means to directly access or manipulate their elements, and are Management of, and access to, their elements. Collections are primarily concerned with the efficient Terminal operation is initiated, and source elements are consumed onlyĬollections and streams, while bearing some superficial similarities, Streams are lazy computation on the source data is only performed when the Terminal operation (which produces a result or side-effect, such Stream into another stream, such as filter(Predicate)), and a
Peek com api generator#
Might be an array, a collection, a generator function, an I/O channel,Įtc), zero or more intermediate operations (which transform a A stream pipeline consists of a source (which There are primitive specializations for IntStream, LongStream,Īnd DoubleStream, all of which are referred to as "streams" andĬonform to the characteristics and restrictions described here. In addition to Stream, which is a stream of object references, Then this stream is summed to produce a total weight.

Transform it into a stream of int values representing the weight ofĮach red widget. We createĪ stream of Widget objects via Collection.stream(),įilter it to produce a stream containing only the red widgets, and then In this example, widgets is a Collection. The following example illustrates an aggregate operation using

A sequence of elements supporting sequential and parallel aggregate
