src/main/java/io/reactivex/Flowable.java
@CheckReturnValue
    @BackpressureSupport(BackpressureKind.UNBOUNDED_IN)
    @SchedulerSupport(SchedulerSupport.NONE)
    public final Single<T> elementAtOrError(long index) {
        if (index < 0) {
            throw new IndexOutOfBoundsException("index >= 0 required but it was " + index);
        }
        return RxJavaPlugins.onAssembly(new FlowableElementAtSingle<T>(this, index, null));
    }
@CheckReturnValue
    @BackpressureSupport(BackpressureKind.UNBOUNDED_IN)
    @SchedulerSupport(SchedulerSupport.NONE)
    public final Single<T> elementAtOrError(long index) {
        if (index < 0) {
            throw new IndexOutOfBoundsException("index >= 0 required but it was " + index);
        }
        return RxJavaPlugins.onAssembly(new FlowableElementAtSingle<T>(this, index, null));
    }
Returns a Single that emits the item found at a specified index in a sequence of emissions from
this Flowable or signals a {@link NoSuchElementException} if this Flowable has fewer elements than index.
<p>
<img width="640" height="310" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/elementAtOrDefault.png" alt="">
<dl>
<dt><b>Backpressure:</b></dt>
<dd>The operator honors backpressure from downstream and consumes the source {@code Publisher} in an unbounded manner
(i.e., no backpressure applied to it).</dd>
<dt><b>Scheduler:</b></dt>
<dd>{@code elementAtOrError} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>

@param index
the zero-based index of the item to retrieve
@return a Single that emits the item at the specified position in the sequence emitted by the source
Publisher, or the default item if that index is outside the bounds of the source sequence
@throws IndexOutOfBoundsException
if {@code index} is less than 0
@see <a href="http://reactivex.io/documentation/operators/elementat.html">ReactiveX operators documentation: ElementAt</a>