Class IntSpliterators.EarlyBindingSizeIndexBasedSpliterator

All Implemented Interfaces:
IntSpliterator, Spliterator<Integer>, Spliterator.OfInt, Spliterator.OfPrimitive<Integer,IntConsumer,Spliterator.OfInt>
Enclosing class:
IntSpliterators

public abstract static class IntSpliterators.EarlyBindingSizeIndexBasedSpliterator extends IntSpliterators.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 an early binding strategy for getMaxPos(). The last index this spliterator covers is fixed at construction time and does not vary on changes to the backing data store. This should usually be the size of the backing data store (until a split at least), hence the class' name, but this is not required.

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).