@SuppressWarnings("unchecked")
    @Override
    public void forEachRemaining(Consumer<? super T> action) {
        requireNonNull(action);
        int i;
        int hi;
        if (array.length >= (hi = size) && (i = index) >= 0 && i < (index = hi)) {
            do {
                action.accept((T) array[i]);
            } while (++i < hi);
        }
    }
Creates a {@link Spliterator} covering the given array and range.

@param array the array, assumed to be unmodified during use
@param origin the least index (inclusive) to cover
@param size one past the greatest index to cover
@param additionalCharacteristics Additional {@link Spliterator}
characteristics of this {@link Spliterator}'s source or elements beyond
{@code SIZED} and {@code SUBSIZED} which are are always reported
runtime-parent/runtime-core/src/main/java/com/speedment/runtime/core/internal/stream/parallel/ArraySpliterator.java