public abstract static class Spliterators.AbstractIntSpliterator extends Objectimplements Spliterator .OfInt
Spliterator.OfInt that implements
trySplit to permit limited parallelism.
To implement a spliterator an extending class need only implement Spliterator tryAdvance}. The extending class should override Spliterator forEach} if it can provide a more performant implementation.
Spliterators.spliterator(java.util.PrimitiveIterator.OfInt, long, int)
Spliterator.OfDouble , Spliterator.OfInt , Spliterator.OfLong , Spliterator.OfPrimitive <T,T_CONS,T_SPLITR extends Spliterator.OfPrimitive <T,T_CONS,T_SPLITR>> CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED| Modifier | Constructor and Description |
|---|---|
protected |
AbstractIntSpliterator(long est, int additionalCharacteristics)
Creates a spliterator reporting the given estimated size and characteristics.
|
| Modifier and Type | Method and 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 traversal, or returns
Long if infinite, unknown, or too expensive to compute.
|
Spliterator |
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.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitforEachRemaining, forEachRemaining, tryAdvance, tryAdvancegetComparator, getExactSizeIfKnown, hasCharacteristicsprotected AbstractIntSpliterator(long est,
int additionalCharacteristics)
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.
public Spliterator.OfInt trySplit()
If this Spliterator is Spliterator, 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:
estimateSize() before splitting, must, after splitting, be greater than or equal to estimateSize() for this and the returned Spliterator; andSUBSIZED, 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.
trySplit in interface
Spliterator<Integer>
trySplit in interface
Spliterator.OfInt
trySplit in interface
Spliterator.OfPrimitive <Integer,IntConsumer,Spliterator.OfInt >
Spliterator covering some portion of the elements, or
null if this spliterator cannot be split
public long estimateSize()
Spliterator.forEachRemaining(java.util.function.Consumer<? super T>) traversal, or returns
Long.MAX_VALUE if infinite, unknown, or too expensive to compute.
If this Spliterator is Spliterator and has not yet been partially traversed or split, or this Spliterator is Spliterator 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.
estimateSize in interface
Spliterator<Integer>
Long.MAX_VALUE if infinite, unknown, or too expensive to compute.
public int characteristics()
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.
characteristics in interface
Spliterator<Integer>