1 package edu.berkeley.sbp.util;
4 public final class ConcatenateIterator<T> implements Iterator<T>, Iterable<T> {
6 private Iterator<T> i1;
7 private Iterator<T> i2;
9 public ConcatenateIterator(Iterator<T> i1, Iterator<T> i2) {
14 public void remove() { throw new Error(); }
15 public boolean hasNext() { return i1.hasNext() || i2.hasNext(); }
16 public T next() { return i1.hasNext() ? i1.next() : i2.next(); }
17 public Iterator<T> iterator() { return this; }