public iterface Iterator{
public abstract boolean hasNext();
public abstract Object next();
}
public interface Iterable {
Iterator iterator();
}
public iterface Collection extends Iterable{
Iterator iterator();
}
public iterface List extends Collection{
Iterator iterator();
}
public class ArrayList implements List{
public Iterator iterator() {
return new Itr();
}
private class Itr implements Iterator {
public boolean hasNext(){}
public Object next(){}
}
}
Collection c = new ArrayList();
c.add("hello");
c.add("world");
c.add("java");
Iterator it = c.iterator(); //new Itr();
while(it.hasNext()){
String s = (String)it.next();
System.out.println(s);
}