android/guava/src/com/google/common/collect/Iterables.java
public static <T> T get(Iterable<T> iterable, int position) {
    checkNotNull(iterable);
    return (iterable instanceof List)
        ? ((List<T>) iterable).get(position)
        : Iterators.get(iterable.iterator(), position);
  }
public static <T> T get(Iterable<T> iterable, int position) {
    checkNotNull(iterable);
    return (iterable instanceof List)
        ? ((List<T>) iterable).get(position)
        : Iterators.get(iterable.iterator(), position);
  }
Returns the element at the specified position in an iterable.

<p><b>{@code Stream} equivalent:</b> {@code stream.skip(position).findFirst().get()} (throws
{@code NoSuchElementException} if out of bounds)

@param position position of the element to return
@return the element at the specified position in {@code iterable}
@throws IndexOutOfBoundsException if {@code position} is negative or greater than or equal to
the size of {@code iterable}