diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2017-02-20 01:55:25 -0500 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2017-02-20 01:55:25 -0500 |
| commit | 3c7460950c060d93bffc395f074f09c18948d91c (patch) | |
| tree | 19eaba394061f720c31cf8507fe199b8357fe5c8 /BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java | |
| parent | 699c2890ca50f9b33ee8e228e544105754b0daca (diff) | |
Minor updates
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java')
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java b/BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java index cce7521..04a93fa 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java @@ -6,9 +6,19 @@ public class CircularIterator<E> implements Iterator<E> { private Iterable<E> source; private Iterator<E> curr; - public CircularIterator(Iterable<E> src) { + private E curElm; + + private boolean doCircle; + + public CircularIterator(Iterable<E> src, boolean circ) { source = src; curr = source.iterator(); + + doCircle = circ; + } + + public CircularIterator(Iterable<E> src) { + this(src, true); } public boolean hasNext() { @@ -17,12 +27,17 @@ public class CircularIterator<E> implements Iterator<E> { } public E next() { - if(curr.hasNext()) { - return curr.next(); - } else { - curr = source.iterator(); - return curr.next(); + if(!curr.hasNext()) { + if(doCircle) { + curr = source.iterator(); + } else { + return curElm; + } } + + curElm = curr.next(); + + return curElm; } public void remove() { |
