1 package sharin.unlinq;
2
3 import java.util.Iterator;
4
5 public class ConcatenatedIterator<T> implements Iterator<T> {
6
7 private Iterator<T> iterator;
8
9 private final Iterator<T> second;
10
11 public ConcatenatedIterator(Iterator<T> first, Iterator<T> second) {
12 this.iterator = first;
13 this.second = second;
14 }
15
16 public boolean hasNext() {
17
18 if (iterator.hasNext()) {
19 return true;
20 }
21
22 if (iterator == second) {
23 return false;
24 }
25
26 iterator = second;
27 return iterator.hasNext();
28 }
29
30 public T next() {
31 return iterator.next();
32 }
33
34 public void remove() {
35 throw new UnsupportedOperationException();
36 }
37
38 }