ListIterator<E> (final int index) { Object[] elements = get(); int len = elements.length; if (index < 0 || index > len) { throw new IndexOutOfBoundsException("Index: " + index); } return elements.length == 0 ? Collections.emptyListIterator() : new COWIterator(elements, index); }