diff options
| author | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2019-07-25 18:30:13 -0300 |
|---|---|---|
| committer | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2019-07-25 18:30:29 -0300 |
| commit | e7518cf5c0eb79cf72553cafe4ee57f32d172207 (patch) | |
| tree | ccd3298faf67fe6b48aef99050db07adfb96e982 | |
| parent | e0ae77a7093feb56e142d6aa0e6fa1a264f94dd8 (diff) | |
Better iterator functionality
| -rw-r--r-- | base/src/main/java/bjc/utils/data/ArrayIterator.java | 6 | ||||
| -rw-r--r-- | base/src/main/java/bjc/utils/funcutils/IteratorUtils.java | 25 |
2 files changed, 27 insertions, 4 deletions
diff --git a/base/src/main/java/bjc/utils/data/ArrayIterator.java b/base/src/main/java/bjc/utils/data/ArrayIterator.java index 5dbf9d7..6a00800 100644 --- a/base/src/main/java/bjc/utils/data/ArrayIterator.java +++ b/base/src/main/java/bjc/utils/data/ArrayIterator.java @@ -10,6 +10,12 @@ public class ArrayIterator<T> implements Iterator<T> { private Object[] arr; private int idx; + /** + * Create a new array iterator. + * + * @param elems + * The array that will be iterated over. + */ public ArrayIterator(T... elms) { arr = elms; idx = 0; 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); } |
