d936189af0fa2cbf32f0dd84078ff1a9e0eee033
[sbp.git] / src / edu / berkeley / sbp / util / ConcatenateIterator.java
1 package edu.berkeley.sbp.util;
2 import java.util.*;
3
4 public final class ConcatenateIterator<T> implements Iterator<T>, Iterable<T> {
5
6     private Iterator<T> i1;
7     private Iterator<T> i2;
8
9     public ConcatenateIterator(Iterator<T> i1, Iterator<T> i2) {
10         this.i1 = i1;
11         this.i2 = i2;
12     }
13
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; }
18 }