summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc/utils/funcutils
diff options
context:
space:
mode:
authorBenjamin J. Culkin <bjculkin@mix.wvu.edu>2019-07-25 18:30:13 -0300
committerBenjamin J. Culkin <bjculkin@mix.wvu.edu>2019-07-25 18:30:29 -0300
commite7518cf5c0eb79cf72553cafe4ee57f32d172207 (patch)
treeccd3298faf67fe6b48aef99050db07adfb96e982 /base/src/main/java/bjc/utils/funcutils
parente0ae77a7093feb56e142d6aa0e6fa1a264f94dd8 (diff)
Better iterator functionality
Diffstat (limited to 'base/src/main/java/bjc/utils/funcutils')
-rw-r--r--base/src/main/java/bjc/utils/funcutils/IteratorUtils.java25
1 files changed, 21 insertions, 4 deletions
diff --git a/base/src/main/java/bjc/utils/funcutils/IteratorUtils.java b/base/src/main/java/bjc/utils/funcutils/IteratorUtils.java
index 3cdee26..5242fc4 100644
--- a/base/src/main/java/bjc/utils/funcutils/IteratorUtils.java
+++ b/base/src/main/java/bjc/utils/funcutils/IteratorUtils.java
@@ -1,7 +1,9 @@
package bjc.utils.funcutils;
-import java.util.Iterator;
-import java.util.function.Function;
+import java.util.*;
+import java.util.function.*;
+
+import bjc.utils.data.*;
/**
* Utility methods for dealing with iterators.
@@ -40,11 +42,13 @@ public class IteratorUtils {
return curItr.next();
}
}
+
/**
* Convert an iterator to an iterable.
*
* @param itr
- * The iterator to convert.
+ * The iterator to convert.
+ *
* @return An iterable that gives back that iterator.
*/
public static <E> Iterable<E> I(Iterator<E> itr) {
@@ -55,13 +59,26 @@ public class IteratorUtils {
* Convert an iterable to an iterator.
*
* @param itr
- * The iterable to convert.
+ * The iterable to convert.
+ *
* @return The iterator from that iterable
*/
public static <E> Iterator<E> I(Iterable<E> itr) {
return itr.iterator();
}
+ /**
+ * Convert an array to an iterator.
+ *
+ * @param parms
+ * The array to iterate over.
+ *
+ * @return An iterator over the provided array.
+ */
+ public static <E> Iterator<E> AI(E... parms) {
+ return new ArrayIterator<>(parms);
+ }
+
public static <A, B> Iterator<B> chain(Iterator<A> itrA, Function<A, Iterator<B>> itrB) {
return new ChainIterator(itrA, itrB);
}