public abstract static class ObjectBigSpliterators.AbstractIndexBasedSpliterator<K> extends AbstractObjectSpliterator<K>
As the abstract methods in this class are used in inner loops, it is generally a
good idea to override the class as final
as to encourage the JVM to inline
them (or alternatively, override the abstract methods as final).
Modifier and Type | Method and Description |
---|---|
int |
characteristics() |
long |
estimateSize() |
void |
forEachRemaining(java.util.function.Consumer<? super K> action) |
long |
skip(long n)
Skips the given number of elements.
|
boolean |
tryAdvance(java.util.function.Consumer<? super K> action) |
ObjectSpliterator<K> |
trySplit() |
public int characteristics()
public long estimateSize()
public boolean tryAdvance(java.util.function.Consumer<? super K> action)
public void forEachRemaining(java.util.function.Consumer<? super K> action)
public long skip(long n)
ObjectSpliterator
The effect of this call is exactly the same as that of calling Spliterator.tryAdvance(java.util.function.Consumer<? super T>)
for
n
times (possibly stopping if Spliterator.tryAdvance(java.util.function.Consumer<? super T>)
returns false).
The action called will do nothing; elements will be discarded.
n
- the number of elements to skip.Spliterator.tryAdvance(java.util.function.Consumer<? super T>)
public ObjectSpliterator<K> trySplit()
java.lang.IndexOutOfBoundsException
- if the return of computeSplitPoint()
was
< pos
or > {@link #getMaxPos()}
.Spliterator.ORDERED
property. This means this current iterator does not need to
to update what getMaxPos()
returns in response to this method (but it may do
"book-keeping" on it based on binding strategy).
The split point is computed by computeSplitPoint()
; see that method for details.