Spec-Zone.ru › OpenJDK 27

Class Spliterators.AbstractLongSpliterator

java.lang.Object
java.util.Spliterators.AbstractLongSpliterator
All Implemented Interfaces:
Spliterator<Long>, Spliterator.OfLong, Spliterator.OfPrimitive<Long, LongConsumer, Spliterator.OfLong>
Enclosing class:
Spliterators
public abstract static class Spliterators.AbstractLongSpliterator extends Object implements Spliterator.OfLong
An abstract Spliterator.OfLong that implements trySplit to permit limited parallelism.

To implement a spliterator an extending class need only implement tryAdvance. The extending class should override forEachRemaining if it can provide a more performant implementation.

API Note:
This class is a useful aid for creating a spliterator when it is not possible or difficult to efficiently partition elements in a manner allowing balanced parallel computation.

An alternative to using this class, that also permits limited parallelism, is to create a spliterator from an iterator (see Spliterators.spliterator(java.util.PrimitiveIterator.OfLong, long, int). Depending on the circumstances using an iterator may be easier or more convenient than extending this class. For example, if there is already an iterator available to use then there is no need to extend this class.

Since:
1.8
See Also:
  • Spliterators.spliterator(java.util.PrimitiveIterator.OfLong, long, int)

Nested Class Summary

Nested classes/interfaces declared in interface Spliterator

Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong, Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>
Modifier and Type Interface Description
static interface  Spliterator.OfDouble
A Spliterator specialized for double values.
static interface  Spliterator.OfInt
A Spliterator specialized for int values.
static interface  Spliterator.OfLong
A Spliterator specialized for long values.
static interface  Spliterator.OfPrimitive<T, T_CONS, T_SPLITR extends Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>>
A Spliterator specialized for primitive values.

Field Summary

Fields declared in interface Spliterator

CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED
Modifier and Type Field Description
static final int CONCURRENT
Characteristic value signifying that the element source may be safely concurrently modified (allowing additions, replacements, and/or removals) by multiple threads without external synchronization.
static final int DISTINCT
Characteristic value signifying that, for each pair of encountered elements x, y, !x.equals(y).
static final int IMMUTABLE
Characteristic value signifying that the element source cannot be structurally modified; that is, elements cannot be added, replaced, or removed, so such changes cannot occur during traversal.
static final int NONNULL
Characteristic value signifying that the source guarantees that encountered elements will not be null.
static final int ORDERED
Characteristic value signifying that an encounter order is defined for elements.
static final int SIZED
Characteristic value signifying that the value returned from estimateSize() prior to traversal or splitting represents a finite size that, in the absence of structural source modification, represents an exact count of the number of elements that would be encountered by a complete traversal.
static final int SORTED
Characteristic value signifying that encounter order follows a defined sort order.
static final int SUBSIZED
Characteristic value signifying that all Spliterators resulting from trySplit() will be both Spliterator.SIZED and Spliterator.SUBSIZED.

Constructor Summary

AbstractLongSpliterator(long est, int additionalCharacteristics)
Modifier Constructor Description
protected
Creates a spliterator reporting the given estimated size and characteristics.

Method Summary

Modifier and Type Method Description
int characteristics()
Returns a set of characteristics of this Spliterator and its elements.
long estimateSize()
Returns an estimate of the number of elements that would be encountered by a Spliterator.forEachRemaining(Consumer) traversal, or returns Long.MAX_VALUE if infinite, unknown, or too expensive to compute.
Spliterator.OfLong trySplit()
If this spliterator can be partitioned, returns a Spliterator covering elements, that will, upon return from this method, not be covered by this Spliterator.

Methods declared in class Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Modifier and Type Method Description
protected Object clone()
Creates and returns a copy of this object.
boolean equals(Object obj)
Indicates whether some other object is "equal to" this one.
protected void finalize()
Deprecated, for removal: This API element is subject to removal in a future version.
Finalization is deprecated and subject to removal in a future release.
final Class<?> getClass()
Returns the runtime class of this Object.
int hashCode()
Returns a hash code value for this object.
final void notify()
Wakes up a single thread that is waiting on this object's monitor.
final void notifyAll()
Wakes up all threads that are waiting on this object's monitor.
String toString()
Returns a string representation of the object.
final void wait()
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
final void wait(long timeoutMillis)
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
final void wait(long timeoutMillis, int nanos)
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

Methods declared in interface Spliterator

getComparator, getExactSizeIfKnown, hasCharacteristics
Modifier and Type Method Description
default Comparator<? super Long> getComparator()
If this Spliterator's source is Spliterator.SORTED by a Comparator, returns that Comparator.
default long getExactSizeIfKnown()
Convenience method that returns Spliterator.estimateSize() if this Spliterator is Spliterator.SIZED, else -1.
default boolean hasCharacteristics(int characteristics)
Returns true if this Spliterator's Spliterator.characteristics() contain all of the given characteristics.

Methods declared in interface Spliterator.OfLong

forEachRemaining, tryAdvance
Modifier and Type Method Description
default void forEachRemaining(Consumer<? super Long> action)
Performs the given action for each remaining element, sequentially in the current thread, until all elements have been processed or the action throws an exception.
default boolean tryAdvance(Consumer<? super Long> action)
If a remaining element exists: performs the given action on it, returning true; else returns false.

Methods declared in interface Spliterator.OfPrimitive

forEachRemaining, tryAdvance
Modifier and Type Method Description
default void forEachRemaining(LongConsumer action)
Performs the given action for each remaining element, sequentially in the current thread, until all elements have been processed or the action throws an exception.
boolean tryAdvance(LongConsumer action)
If a remaining element exists, performs the given action on it, returning true; else returns false.

Constructor Details

AbstractLongSpliterator

protected AbstractLongSpliterator(long est, int additionalCharacteristics)
Creates a spliterator reporting the given estimated size and characteristics.
Parameters:
est - the estimated size of this spliterator if known, otherwise Long.MAX_VALUE.
additionalCharacteristics - properties of this spliterator's source or elements. If SIZED is reported then this spliterator will additionally report SUBSIZED.

Method Details

trySplit

public Spliterator.OfLong trySplit()
If this spliterator can be partitioned, returns a Spliterator covering elements, that will, upon return from this method, not be covered by this Spliterator.

If this Spliterator is Spliterator.ORDERED, the returned Spliterator must cover a strict prefix of the elements.

Unless this Spliterator covers an infinite number of elements, repeated calls to trySplit() must eventually return null. Upon non-null return:

  • the value reported for estimateSize() before splitting, must, after splitting, be greater than or equal to estimateSize() for this and the returned Spliterator; and
  • if this Spliterator is SUBSIZED, then estimateSize() for this spliterator before splitting must be equal to the sum of estimateSize() for this and the returned Spliterator after splitting.

This method may return null for any reason, including emptiness, inability to split after traversal has commenced, data structure constraints, and efficiency considerations. This implementation permits limited parallelism.

Specified by:
trySplit in interface Spliterator<Long>
Returns:
a Spliterator covering some portion of the elements, or null if this spliterator cannot be split

estimateSize

public long estimateSize()
Returns an estimate of the number of elements that would be encountered by a Spliterator.forEachRemaining(Consumer) traversal, or returns Long.MAX_VALUE if infinite, unknown, or too expensive to compute.

If this Spliterator is Spliterator.SIZED and has not yet been partially traversed or split, or this Spliterator is Spliterator.SUBSIZED and has not yet been partially traversed, this estimate must be an accurate count of elements that would be encountered by a complete traversal. Otherwise, this estimate may be arbitrarily inaccurate, but must decrease as specified across invocations of Spliterator.trySplit().

Specified by:
estimateSize in interface Spliterator<Long>
Implementation Requirements:
This implementation returns the estimated size as reported when created and, if the estimate size is known, decreases in size when split.
Returns:
the estimated size, or Long.MAX_VALUE if infinite, unknown, or too expensive to compute.

characteristics

public int characteristics()
Returns a set of characteristics of this Spliterator and its elements. The result is represented as ORed values from Spliterator.ORDERED, Spliterator.DISTINCT, Spliterator.SORTED, Spliterator.SIZED, Spliterator.NONNULL, Spliterator.IMMUTABLE, Spliterator.CONCURRENT, Spliterator.SUBSIZED. Repeated calls to characteristics() on a given spliterator, prior to or in-between calls to trySplit, should always return the same result.

If a Spliterator reports an inconsistent set of characteristics (either those returned from a single invocation or across multiple invocations), no guarantees can be made about any computation using this Spliterator.

Specified by:
characteristics in interface Spliterator<Long>
Implementation Requirements:
This implementation returns the characteristics as reported when created.
Returns:
a representation of characteristics

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. Other versions.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2026, 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.

© 1993, 2025, 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API