From 3c7460950c060d93bffc395f074f09c18948d91c Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Mon, 20 Feb 2017 01:55:25 -0500 Subject: Minor updates --- .../main/java/bjc/utils/data/CircularIterator.java | 27 +++++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) (limited to 'BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java') 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 implements Iterator { private Iterable source; private Iterator curr; - public CircularIterator(Iterable src) { + private E curElm; + + private boolean doCircle; + + public CircularIterator(Iterable src, boolean circ) { source = src; curr = source.iterator(); + + doCircle = circ; + } + + public CircularIterator(Iterable src) { + this(src, true); } public boolean hasNext() { @@ -17,12 +27,17 @@ public class CircularIterator implements Iterator { } 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() { -- cgit v1.2.3