interface Iterator<E> {
  E next();
  boolean hasNext();
}

interface List<E> {
  void add(E x);
  Iterator<E> iterator();
}

class StupidList<E> implements List<E> {
  private E e;
  public void add( E e ){ this.e = e; }
  public Iterator<E> iterator(){
     return new Iterator<E>(){
               public E next(){ return e; }
               public boolean hasNext(){ return true; }
            };
  }
}

class G4 {
  public static void main( String[] args ){
    StupidList<String> sList = new StupidList<String>();
    sList.add("Cool stuff");

    Iterator<String> it1 = sList.iterator();
    while( it1.hasNext() ){
       String s = it1.next();
       System.out.println(s);
    }

    for( Iterator<String> it2 = sList.iterator(); it2.hasNext(); ){
       String s = it2.next();
       System.out.println(s);
    }
  }
}