TO-WRITE
class List implements Iterable<T> {
public Iterator<T> iterator() {
// returns an iterator
}
}
class List implements Iterator<T> {
public boolean hasNext() {
// returns true if more elements
}
public T next() {
if (!hasNext) {
throw new Error();
}
// Returns next element
}
}