package util; import java.util.Iterator; /** * An iterator that will iterate over all the values * in the two supplied iterators. */ public class ConcatIterator extends ReadOnlyIterator { private Iterator it1; private Iterator it2; public ConcatIterator(Iterator it1, Iterator it2) { this.it1 = it1; this.it2 = it2; } public boolean hasNext () { return it1.hasNext() || it2.hasNext(); } public A next () { if (it1.hasNext()) { return it1.next(); } else { return it2.next(); } // exposes bug 5037679 in javac-1.5.0-beta //return it1.hasNext() ? it1.next() : it2.next(); } }