@Override public Spliterator<E> spliterator(){ returnnew ArrayListSpliterator(0, -1, 0); }
Index-based split-by-two, lazily initialized Spliterator finalclassArrayListSpliteratorimplementsSpliterator<E> { privateint index; // current index, modified on advance/split privateint fence; // -1 until used; then one past last index privateint expectedModCount; // initialized when fence set
Creates new spliterator covering the given range. ArrayListSpliterator(int origin, int fence, int expectedModCount) { this.index = origin; this.fence = fence; this.expectedModCount = expectedModCount; }