Package it.unimi.dsi.fastutil.longs
Class LongSpliterators.LateBindingSizeIndexBasedSpliterator
- java.lang.Object
-
- it.unimi.dsi.fastutil.longs.AbstractLongSpliterator
-
- it.unimi.dsi.fastutil.longs.LongSpliterators.AbstractIndexBasedSpliterator
-
- it.unimi.dsi.fastutil.longs.LongSpliterators.LateBindingSizeIndexBasedSpliterator
-
- All Implemented Interfaces:
LongSpliterator
,java.util.Spliterator<java.lang.Long>
,java.util.Spliterator.OfLong
,java.util.Spliterator.OfPrimitive<java.lang.Long,java.util.function.LongConsumer,java.util.Spliterator.OfLong>
- Enclosing class:
- LongSpliterators
public abstract static class LongSpliterators.LateBindingSizeIndexBasedSpliterator extends LongSpliterators.AbstractIndexBasedSpliterator
A skeletal implementation for a spliterator backed by an index based data store. High performance concrete implementations (like the main Spliterator of ArrayList) generally should avoid using this and just implement the interface directly, but should be decent for less performance critical implementations.This class implements a late binding strategy. On a new, non-split instance, the
max pos
will track the given data store (usually it's size, hence the class' name). On the first split, the last index will be read from the backing data store one last time and then be fixed for the remaining duration of this instance.
The returned split should should also be have a constantmaxPos
.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).
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface java.util.Spliterator
java.util.Spliterator.OfDouble, java.util.Spliterator.OfInt, java.util.Spliterator.OfLong, java.util.Spliterator.OfPrimitive<T extends java.lang.Object,T_CONS extends java.lang.Object,T_SPLITR extends java.util.Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>>
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description LongSpliterator
trySplit()
-
Methods inherited from class it.unimi.dsi.fastutil.longs.LongSpliterators.AbstractIndexBasedSpliterator
characteristics, estimateSize, forEachRemaining, skip, tryAdvance
-
Methods inherited from class it.unimi.dsi.fastutil.longs.AbstractLongSpliterator
forEachRemaining, tryAdvance
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface it.unimi.dsi.fastutil.longs.LongSpliterator
forEachRemaining, getComparator, tryAdvance
-
-
-
-
Method Detail
-
trySplit
public LongSpliterator trySplit()
Description copied from class:LongSpliterators.AbstractIndexBasedSpliterator
- Specified by:
trySplit
in interfaceLongSpliterator
- Specified by:
trySplit
in interfacejava.util.Spliterator<java.lang.Long>
- Specified by:
trySplit
in interfacejava.util.Spliterator.OfLong
- Specified by:
trySplit
in interfacejava.util.Spliterator.OfPrimitive<java.lang.Long,java.util.function.LongConsumer,java.util.Spliterator.OfLong>
- Overrides:
trySplit
in classLongSpliterators.AbstractIndexBasedSpliterator
-
-