summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/data
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2017-02-16 09:35:10 -0500
committerbculkin2442 <bjculkin@mix.wvu.edu>2017-02-16 09:35:10 -0500
commit039f7f71e049029ab71a6d6c60d2eed5f95e5795 (patch)
tree8d635a48670c7c24ffe1378ee70b367d1bd5953c /BJC-Utils2/src/main/java/bjc/utils/data
parent1b8704ee52801aca190f89c6839098a9b0776e7c (diff)
Update
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/data')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java31
1 files changed, 31 insertions, 0 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
new file mode 100644
index 0000000..cce7521
--- /dev/null
+++ b/BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java
@@ -0,0 +1,31 @@
+package bjc.utils.data;
+
+import java.util.Iterator;
+
+public class CircularIterator<E> implements Iterator<E> {
+ private Iterable<E> source;
+ private Iterator<E> curr;
+
+ public CircularIterator(Iterable<E> src) {
+ source = src;
+ curr = source.iterator();
+ }
+
+ public boolean hasNext() {
+ // We always have something
+ return true;
+ }
+
+ public E next() {
+ if(curr.hasNext()) {
+ return curr.next();
+ } else {
+ curr = source.iterator();
+ return curr.next();
+ }
+ }
+
+ public void remove() {
+ curr.remove();
+ }
+}