checkpoint
[sbp.git] / src / edu / berkeley / sbp / util / ArrayIterator.java
index 61bbcfb..df541e5 100644 (file)
@@ -4,12 +4,20 @@ import java.util.*;
 public final class ArrayIterator<T> implements Iterator<T>, Iterable<T> {
 
     private final T[] array;
-    private       int i     = 0;
+    private int start;
+    private int len;
+    private int i = 0;
 
-    public ArrayIterator(T[] array) { this.array = array; }
+    public ArrayIterator(T[] array) { this(array, 0, array.length); }
+    public ArrayIterator(T[] array, int start, int len) {
+        this.start = start;
+        this.len = len;
+        this.array = array;
+        this.i = start;
+    }
 
     public void    remove()       { throw new Error(); }
-    public boolean hasNext()      { return i<array.length; }
+    public boolean hasNext()      { return i<start+len; }
     public T       next()         { return array[i++]; }
     public Iterator<T> iterator() { return this; }
 }