public abstract static class ObjectSpliterators.AbstractIndexBasedSpliterator<K> extends AbstractObjectSpliterator<K>
This class is only appropriate for sequences that are at most Integer.MAX_VALUE
long.
If your backing data store can be bigger then this, consider the equivalently named class in
the type specific BigSpliterators
class.
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.