package edu.cmu.minorthird.util; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class UnionIterator<E> implements Iterator<E>{ private Iterator<E> a; private Iterator<E> b; public UnionIterator(Iterator<E> a,Iterator<E> b){ this.a=a; this.b=b; } @Override public boolean hasNext(){ return a.hasNext()||b.hasNext(); } @Override public E next(){ if(a.hasNext()){ return a.next(); } else if(b.hasNext()){ return b.next(); } else{ return null; } } @Override public void remove(){ System.err.println("remove() not implemented by "+this.getClass()); } public static void main(String argv[]){ List<String> list=new ArrayList<String>(); for(int i=0;i<argv.length;i++){ list.add(argv[i]); } for(Iterator<String> i=new UnionIterator<String>(list.iterator(),list.iterator());i.hasNext();System.out.println(i.next())); } }