package xapi.collect.impl; import java.util.Iterator; import xapi.except.NotImplemented; public class ArrayIterable <E> implements Iterable<E> { private final E[] array; private final class Itr implements Iterator<E> { int pos = 0, end = array.length; @Override public boolean hasNext() { return pos < end; } @Override public E next() { return array[pos++]; } @Override public void remove() { ArrayIterable.this.remove(array[pos-1]); } } public ArrayIterable(E[] array) { this.array = array; } @Override public Iterator<E> iterator() { return new Itr(); } protected void remove(E key) { throw new NotImplemented("ArrayIterable does not support remove"); } }