aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/util/ExtraIterables.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-28 14:45:56 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-28 14:45:56 +0000
commitea417d7c4d430d4bb6fcce14e64ffda82f475805 (patch)
treeeddfd9b3374610a7b1b1f0af86d7a1e9374e8eb8 /src/main/java/org/zwobble/couscous/util/ExtraIterables.java
parent9600fba4a61e2e42da2221c1ec15e2a20072afa8 (diff)
Extract forEach over two iterabes
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");
+ }
+ }
+}