long
primitive specialization of
Stream
.
The following example illustrates an aggregate operation using
Stream
and LongStream
, computing the sum of the weights of the
red widgets:
long sum = widgets.stream()
.filter(w -> w.getColor() == RED)
.mapToLong(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.
Stream
, java.util.stream
Modifier and Type | Class and Description |
---|---|
public static interface | LongStream.
A mutable builder for a |
public static interface | LongStream.
Represents an operation that accepts a |
Modifier and Type | Method and Description |
---|---|
public boolean | Returns: true if either all elements of the stream match the
provided predicate or the stream is empty, otherwise false a non-interfering,
stateless
predicate to apply to elements of this stream predicate)Returns whether all elements of this stream match the provided predicate. |
public boolean | Returns: true if any elements of the stream match the provided
predicate, otherwise false a non-interfering,
stateless
predicate to apply to elements of this stream predicate)Returns whether any elements of this stream match the provided predicate. |
public DoubleStream | Returns: aDoubleStream consisting of the elements of this stream,
converted to double Returns a |
public OptionalDouble | Returns: anOptionalDouble containing the average element of this
stream, or an empty optional if the stream is emptyReturns an |
public Stream | Returns: aStream consistent of the elements of this stream,
each boxed to Long Returns a |
public static LongStream. | |
public < the type of the mutable result container R> R | Returns: the result of the reductiona function that creates a new mutable result container.
For a parallel execution, this function may be called
multiple times and must return a fresh value each time. supplier, ObjLongConsumer<R> an associative,
non-interfering,
stateless
function that must fold an element into a result
container. accumulator, BiConsumer<R, R> an associative,
non-interfering,
stateless
function that accepts two partial result containers
and merges them, which must be compatible with the
accumulator function. The combiner function must fold
the elements from the second result container into the
first result container. combiner)Performs a mutable reduction operation on the elements of this stream. |
public static LongStream | Returns: the concatenation of the two input streamsthe first stream a, LongStream the second stream b)Creates a lazily concatenated stream whose elements are all the elements of the first stream followed by all the elements of the second stream. |
public long | |
public LongStream | Returns: the new streamReturns a stream consisting of the distinct elements of this stream. |
public default LongStream | Returns: the new streama non-interfering,
stateless
predicate to apply to elements to determine the longest
prefix of elements. predicate)Returns, if this stream is ordered, a stream consisting of the remaining elements of this stream after dropping the longest prefix of elements that match the given predicate. |
public static LongStream | |
public LongStream | Returns: the new streama non-interfering,
stateless
predicate to apply to each element to determine if it
should be included predicate)Returns a stream consisting of the elements of this stream that match the given predicate. |
public OptionalLong | Returns: anOptionalLong describing some element of this stream,
or an empty OptionalLong if the stream is emptyReturns an |
public OptionalLong | Returns: anOptionalLong describing the first element of this
stream, or an empty OptionalLong if the stream is emptyReturns an |
public LongStream | Returns: the new streama non-interfering,
stateless
function to apply to each element which produces a
mapper)LongStream of new valuesReturns a stream consisting of the results of replacing each element of this stream with the contents of a mapped stream produced by applying the provided mapping function to each element. |
public void | forEach(LongConsumer
a
non-interfering action to perform on the elements action)Performs an action for each element of this stream. |
public void | forEachOrdered(LongConsumer
a
non-interfering action to perform on the elements action)Performs an action for each element of this stream, guaranteeing that each element is processed in encounter order for streams that have a defined encounter order. |
public static LongStream | Returns: a new infinite sequential unorderedLongStream the s)LongSupplier for generated elementsReturns an infinite sequential unordered stream where each element is
generated by the provided |
public static LongStream | Returns: a new sequentialLongStream the initial element seed, final LongUnaryOperator a function to be applied to the previous element to produce
a new element f)Returns an infinite sequential ordered The first element (position |
public static LongStream | Returns: a new sequentialLongStream the initial element seed, LongPredicate a predicate to apply to elements to determine when the
stream must terminate. hasNext, LongUnaryOperator a function to be applied to the previous element to produce
a new element next)Returns a sequential ordered |
public PrimitiveIterator. | iterator()
Redeclares java. Returns an iterator for the elements of this stream. |
public LongStream | Returns: the new streamthe number of elements the stream should be limited to maxSize)Returns a stream consisting of the elements of this stream, truncated
to be no longer than |
public LongStream | Returns: the new streama non-interfering,
stateless
function to apply to each element mapper)Returns a stream consisting of the results of applying the given function to the elements of this stream. |
public default LongStream | Returns: the new streama non-interfering,
stateless
function that generates replacement elements mapperReturns a stream consisting of the results of replacing each element of this stream with multiple elements, specifically zero or more elements. |
public DoubleStream | Returns: the new streama non-interfering,
stateless
function to apply to each element mapper)Returns a |
public IntStream | Returns: the new streama non-interfering,
stateless
function to apply to each element mapper)Returns an |
public < the element type of the new stream U> Stream | Returns: the new streama non-interfering,
stateless
function to apply to each element mapper)Returns an object-valued |
public OptionalLong | Returns: anOptionalLong containing the maximum element of this
stream, or an empty OptionalLong if the stream is emptyReturns an |
public OptionalLong | Returns: anOptionalLong containing the minimum element of this
stream, or an empty OptionalLong if the stream is emptyReturns an |
public boolean | Returns: true if either no elements of the stream match the
provided predicate or the stream is empty, otherwise false a non-interfering,
stateless
predicate to apply to elements of this stream predicate)Returns whether no elements of this stream match the provided predicate. |
public static LongStream | Returns: a singleton sequential streamthe single element t)Returns a sequential |
public static LongStream | Returns: the new streamthe elements of the new stream values)Returns a sequential ordered stream whose elements are the specified values. |
public LongStream | parallel()
Redeclares java. Returns an equivalent stream that is parallel. |
public LongStream | Returns: the new streama
non-interfering action to perform on the elements as
they are consumed from the stream action)Returns a stream consisting of the elements of this stream, additionally performing the provided action on each element as elements are consumed from the resulting stream. |
public static LongStream | Returns: a sequentialLongStream for the range of long
elementsthe (inclusive) initial value startInclusive, final long the exclusive upper bound endExclusive)Returns a sequential ordered |
public static LongStream | Returns: a sequentialLongStream for the range of long
elementsthe (inclusive) initial value startInclusive, final long the inclusive upper bound endInclusive)Returns a sequential ordered |
public long | Returns: the result of the reductionthe identity value for the accumulating function identity, LongBinaryOperator op)Performs a reduction on the elements of this stream, using the provided identity value and an associative accumulation function, and returns the reduced value. |
public OptionalLong | Returns: the result of the reductionPerforms a reduction on the
elements of this stream, using an
associative accumulation
function, and returns an |
public LongStream | sequential()
Redeclares java. Returns an equivalent stream that is sequential. |
public LongStream | Returns: the new streamthe number of leading elements to skip n)Returns a stream consisting of the remaining elements of this stream
after discarding the first |
public LongStream | Returns: the new streamReturns a stream consisting of the elements of this stream in sorted order. |
public Spliterator. | spliterator()
Redeclares java. Returns a spliterator for the elements of this stream. |
public long | |
public LongSummaryStatistics | Returns: aLongSummaryStatistics describing various summary data
about the elements of this streamReturns a |
public default LongStream | Returns: the new streama non-interfering,
stateless
predicate to apply to elements to determine the longest
prefix of elements. predicate)Returns, if this stream is ordered, a stream consisting of the longest prefix of elements taken from this stream that match the given predicate. |
public long[] | Returns: an array containing the elements of this streamReturns an array containing the elements of this stream. |
allMatch | back to summary |
---|---|
public boolean allMatch(LongPredicate predicate) Returns whether all elements of this stream match the provided predicate.
May not evaluate the predicate on all elements if not necessary for
determining the result. If the stream is empty then This is a short-circuiting terminal operation. API Note This method evaluates the universal quantification of the
predicate over the elements of the stream (for all x P(x)). If the
stream is empty, the quantification is said to be vacuously
satisfied and is always
|
anyMatch | back to summary |
---|---|
public boolean anyMatch(LongPredicate predicate) Returns whether any elements of this stream match the provided
predicate. May not evaluate the predicate on all elements if not
necessary for determining the result. If the stream is empty then
This is a short-circuiting terminal operation. API Note This method evaluates the existential quantification of the predicate over the elements of the stream (for some x P(x)).
|
asDoubleStream | back to summary |
---|---|
public DoubleStream asDoubleStream() Returns a This is an intermediate operation.
|
average | back to summary |
---|---|
public OptionalDouble average() Returns an This is a terminal operation.
|
boxed | back to summary |
---|---|
public Stream Returns a This is an intermediate operation. |
builder | back to summary |
---|---|
public static LongStream. Returns a builder for a
|
collect | back to summary |
---|---|
public <R> R collect(Supplier<R> supplier, ObjLongConsumer<R> accumulator, BiConsumer<R, R> combiner) Performs a mutable
reduction operation on the elements of this stream. A mutable
reduction is one in which the reduced value is a mutable result container,
such as an
Like This is a terminal operation.
|
concat | back to summary |
---|---|
public static LongStream concat(LongStream a, LongStream b) Creates a lazily concatenated stream whose elements are all the elements of the first stream followed by all the elements of the second stream. The resulting stream is ordered if both of the input streams are ordered, and parallel if either of the input streams is parallel. When the resulting stream is closed, the close handlers for both input streams are invoked. This method operates on the two input streams and binds each stream to its source. As a result subsequent modifications to an input stream source may not be reflected in the concatenated stream result. Implementation Note Use caution when constructing streams from repeated concatenation.
Accessing an element of a deeply concatenated stream can result in deep
call chains, or even API Note To preserve optimization opportunities this method binds each stream to its source and accepts only two streams as parameters. For example, the exact size of the concatenated stream source can be computed if the exact size of each input stream source is known. To concatenate more streams without binding, or without nested calls to this method, try creating a stream of streams and flat-mapping with the identity function, for example:
|
count | back to summary |
---|---|
public long count() Returns the count of elements in this stream. This is a special case of a reduction and is equivalent to:
This is a terminal operation. API Note An implementation may choose to not execute the stream pipeline (either sequentially or in parallel) if it is capable of computing the count directly from the stream source. In such cases no source elements will be traversed and no intermediate operations will be evaluated. Behavioral parameters with side-effects, which are strongly discouraged except for harmless cases such as debugging, may be affected. For example, consider the following stream:
The number of elements covered by the stream source is known and the
intermediate operation, peek , does not inject into or remove
elements from the stream (as may be the case for flatMap or
filter operations). Thus the count is 4 and there is no need to
execute the pipeline and, as a side-effect, print out the elements.
|
distinct | back to summary |
---|---|
public LongStream distinct() Returns a stream consisting of the distinct elements of this stream. This is a stateful intermediate operation.
|
dropWhile | back to summary |
---|---|
public default LongStream dropWhile(LongPredicate predicate) Returns, if this stream is ordered, a stream consisting of the remaining elements of this stream after dropping the longest prefix of elements that match the given predicate. Otherwise returns, if this stream is unordered, a stream consisting of the remaining elements of this stream after dropping a subset of elements that match the given predicate. If this stream is ordered then the longest prefix is a contiguous sequence of elements of this stream that match the given predicate. The first element of the sequence is the first element of this stream, and the element immediately following the last element of the sequence does not match the given predicate. If this stream is unordered, and some (but not all) elements of this stream match the given predicate, then the behavior of this operation is nondeterministic; it is free to drop any subset of matching elements (which includes the empty set). Independent of whether this stream is ordered or unordered if all elements of this stream match the given predicate then this operation drops all elements (the result is an empty stream), or if no elements of the stream match the given predicate then no elements are dropped (the result is the same as the input). This is a stateful intermediate operation. Implementation Specification The default implementation obtains the API Note While
|
empty | back to summary |
---|---|
public static LongStream empty() Returns an empty sequential
|
filter | back to summary |
---|---|
public LongStream filter(LongPredicate predicate) Returns a stream consisting of the elements of this stream that match the given predicate. This is an intermediate operation.
|
findAny | back to summary |
---|---|
public OptionalLong findAny() Returns an This is a short-circuiting terminal operation. The behavior of this operation is explicitly nondeterministic; it is
free to select any element in the stream. This is to allow for maximal
performance in parallel operations; the cost is that multiple invocations
on the same source may not return the same result. (If a stable result
is desired, use
|
findFirst | back to summary |
---|---|
public OptionalLong findFirst() Returns an This is a short-circuiting terminal operation.
|
flatMap | back to summary |
---|---|
public LongStream flatMap(LongFunction<? extends LongStream> mapper) Returns a stream consisting of the results of replacing each element of
this stream with the contents of a mapped stream produced by applying
the provided mapping function to each element. Each mapped stream is
This is an intermediate operation.
|
forEach | back to summary |
---|---|
public void forEach(LongConsumer action) Performs an action for each element of this stream. This is a terminal operation. For parallel stream pipelines, this operation does not guarantee to respect the encounter order of the stream, as doing so would sacrifice the benefit of parallelism. For any given element, the action may be performed at whatever time and in whatever thread the library chooses. If the action accesses shared state, it is responsible for providing the required synchronization.
|
forEachOrdered | back to summary |
---|---|
public void forEachOrdered(LongConsumer action) Performs an action for each element of this stream, guaranteeing that each element is processed in encounter order for streams that have a defined encounter order. This is a terminal operation.
|
generate | back to summary |
---|---|
public static LongStream generate(LongSupplier s) Returns an infinite sequential unordered stream where each element is
generated by the provided
|
iterate | back to summary |
---|---|
public static LongStream iterate(final long seed, final LongUnaryOperator f) Returns an infinite sequential ordered The first element (position The action of applying
|
iterate | back to summary |
---|---|
public static LongStream iterate(long seed, LongPredicate hasNext, LongUnaryOperator next) Returns a sequential ordered
The resulting sequence may be empty if the The action of applying the
|
iterator | back to summary |
---|---|
public PrimitiveIterator. Redeclares java. Doc from java. Returns an iterator for the elements of this stream. This is a terminal operation.
|
limit | back to summary |
---|---|
public LongStream limit(long maxSize) Returns a stream consisting of the elements of this stream, truncated
to be no longer than This is a short-circuiting stateful intermediate operation. API Note While
|
map | back to summary |
---|---|
public LongStream map(LongUnaryOperator mapper) Returns a stream consisting of the results of applying the given function to the elements of this stream. This is an intermediate operation.
|
mapMulti | back to summary |
---|---|
public default LongStream mapMulti(LongStream. Returns a stream consisting of the results of replacing each element of this stream with multiple elements, specifically zero or more elements. Replacement is performed by applying the provided mapping function to each element in conjunction with a consumer argument that accepts replacement elements. The mapping function calls the consumer zero or more times to provide the replacement elements. This is an intermediate operation. If the consumer argument is used outside the scope of its application to the mapping function, the results are undefined. Implementation Specification The default implementation invokes
|
mapToDouble | back to summary |
---|---|
public DoubleStream mapToDouble(LongToDoubleFunction mapper) Returns a This is an intermediate operation.
|
mapToInt | back to summary |
---|---|
public IntStream mapToInt(LongToIntFunction mapper) Returns an This is an intermediate operation.
|
mapToObj | back to summary |
---|---|
public <U> Stream Returns an object-valued This is an intermediate operation.
|
max | back to summary |
---|---|
public OptionalLong max() Returns an
This is a terminal operation.
|
min | back to summary |
---|---|
public OptionalLong min() Returns an
This is a terminal operation.
|
noneMatch | back to summary |
---|---|
public boolean noneMatch(LongPredicate predicate) Returns whether no elements of this stream match the provided predicate.
May not evaluate the predicate on all elements if not necessary for
determining the result. If the stream is empty then This is a short-circuiting terminal operation. API Note This method evaluates the universal quantification of the
negated predicate over the elements of the stream (for all x ~P(x)). If
the stream is empty, the quantification is said to be vacuously satisfied
and is always
|
of | back to summary |
---|---|
public static LongStream of(long t) Returns a sequential
|
of | back to summary |
---|---|
public static LongStream of(long... values) Returns a sequential ordered stream whose elements are the specified values.
|
parallel | back to summary |
---|---|
public LongStream parallel() Redeclares java. Doc from java. 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.
|
peek | back to summary |
---|---|
public LongStream peek(LongConsumer action) Returns a stream consisting of the elements of this stream, additionally performing the provided action on each element as elements are consumed from the resulting stream. This is an intermediate operation. For parallel stream pipelines, the action may be called at whatever time and in whatever thread the element is made available by the upstream operation. If the action modifies shared state, it is responsible for providing the required synchronization. API Note This method exists mainly to support debugging, where you want to see the elements as they flow past a certain point in a pipeline:
In cases where the stream implementation is able to optimize away the
production of some or all the elements (such as with short-circuiting
operations like
|
range | back to summary |
---|---|
public static LongStream range(long startInclusive, final long endExclusive) Returns a sequential ordered API Note An equivalent sequence of increasing values can be produced
sequentially using a
|
rangeClosed | back to summary |
---|---|
public static LongStream rangeClosed(long startInclusive, final long endInclusive) Returns a sequential ordered API Note An equivalent sequence of increasing values can be produced
sequentially using a
|
reduce | back to summary |
---|---|
public long reduce(long identity, LongBinaryOperator op) Performs a reduction on the elements of this stream, using the provided identity value and an associative accumulation function, and returns the reduced value. This is equivalent to:
but is not constrained to execute sequentially.
The This is a terminal operation. API Note Sum, min, max, and average are all special cases of reduction. Summing a stream of numbers can be expressed as:
or more compactly:
While this may seem a more roundabout way to perform an aggregation compared to simply mutating a running total in a loop, reduction operations parallelize more gracefully, without needing additional synchronization and with greatly reduced risk of data races.
|
reduce | back to summary |
---|---|
public OptionalLong reduce(LongBinaryOperator op) Performs a reduction on the
elements of this stream, using an
associative accumulation
function, and returns an
but is not constrained to execute sequentially.
The This is a terminal operation.
|
sequential | back to summary |
---|---|
public LongStream sequential() Redeclares java. Doc from java. 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.
|
skip | back to summary |
---|---|
public LongStream skip(long n) Returns a stream consisting of the remaining elements of this stream
after discarding the first This is a stateful intermediate operation. API Note While
|
sorted | back to summary |
---|---|
public LongStream sorted() Returns a stream consisting of the elements of this stream in sorted order. This is a stateful intermediate operation.
|
spliterator | back to summary |
---|---|
public Spliterator. Redeclares java. Doc from java. Returns a spliterator for the elements of this stream. This is a terminal operation.
|
sum | back to summary |
---|---|
public long sum() Returns the sum of elements in this stream. This is a special case of a reduction and is equivalent to:
This is a terminal operation.
|
summaryStatistics | back to summary |
---|---|
public LongSummaryStatistics summaryStatistics() Returns a This is a terminal operation.
|
takeWhile | back to summary |
---|---|
public default LongStream takeWhile(LongPredicate predicate) Returns, if this stream is ordered, a stream consisting of the longest prefix of elements taken from this stream that match the given predicate. Otherwise returns, if this stream is unordered, a stream consisting of a subset of elements taken from this stream that match the given predicate. If this stream is ordered then the longest prefix is a contiguous sequence of elements of this stream that match the given predicate. The first element of the sequence is the first element of this stream, and the element immediately following the last element of the sequence does not match the given predicate. If this stream is unordered, and some (but not all) elements of this stream match the given predicate, then the behavior of this operation is nondeterministic; it is free to take any subset of matching elements (which includes the empty set). Independent of whether this stream is ordered or unordered if all elements of this stream match the given predicate then this operation takes all elements (the result is the same as the input), or if no elements of the stream match the given predicate then no elements are taken (the result is an empty stream). This is a short-circuiting stateful intermediate operation. Implementation Specification The default implementation obtains the API Note While
|
toArray | back to summary |
---|---|
public long[] toArray() Returns an array containing the elements of this stream. This is a terminal operation.
|
LongStream
.
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
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.
LongStream#builder()
Modifier and Type | Method and Description |
---|---|
public void | accept(long
the input argument t)Redeclares java. Adds an element to the stream being built. |
public default LongStream. | |
public LongStream |
accept | back to summary |
---|---|
public void accept(long t) Redeclares java. Adds an element to the stream being built.
|
add | back to summary |
---|---|
public default LongStream. Adds an element to the stream being built. Implementation Specification The default implementation behaves as if:
|
build | back to summary |
---|---|
public LongStream build() Builds the stream, transitioning this builder to the built state.
An
|
long
-valued argument
and a LongConsumer, and returns no result. This functional interface is
used by LongStream.mapMulti
to replace a long value with zero or more long values.
This is a functional interface
whose functional method is accept(long, LongConsumer)
.
LongStream#mapMulti(LongStream.LongMapMultiConsumer)
Modifier and Type | Method and Description |
---|---|
public void | accept(long
the long value coming from upstream value, LongConsumer a lc)LongConsumer accepting the mapped valuesReplaces the given |
accept | back to summary |
---|---|
public void accept(long value, LongConsumer lc) Replaces the given
|