code: @Override
  	public ExtendedIterator<T> iterator() {
  		return new ExtendedIterator<T>() {
  			final IntIterator itr = indices.iterator();
  			@Override public boolean hasNext() {return itr.hasNext();}
  			@Override public T next() {return indexToItem[itr.next()];}
  			@Override public void skipAllBefore(T element) {itr.skipAllBefore(itemToIndex.get(element).intValue());}
  			@Override public void remove() {itr.remove();}
  		};
  	}
docs: {@inheritDoc}