aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/util/ExtraIterables.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/couscous/util/ExtraIterables.java')
-rw-r--r--src/main/java/org/zwobble/couscous/util/ExtraIterables.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/util/ExtraIterables.java b/src/main/java/org/zwobble/couscous/util/ExtraIterables.java
new file mode 100644
index 0000000..9cdb0f0
--- /dev/null
+++ b/src/main/java/org/zwobble/couscous/util/ExtraIterables.java
@@ -0,0 +1,18 @@
+package org.zwobble.couscous.util;
+
+import java.util.Iterator;
+
+public class ExtraIterables {
+ private ExtraIterables() {}
+
+ public static <T, U> void forEach(Iterable<? extends T> first, Iterable<? extends U> second, Action2<T, U> action) {
+ Iterator<? extends T> firstIterator = first.iterator();
+ Iterator<? extends U> secondIterator = second.iterator();
+ while (firstIterator.hasNext()) {
+ action.run(firstIterator.next(), secondIterator.next());
+ }
+ if (secondIterator.hasNext()) {
+ throw new RuntimeException("Iterables not of same length");
+ }
+ }
+}