aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/objects
diff options
context:
space:
mode:
authorMartin Robertz <dream-master@gmx.net>2021-08-05 19:28:27 +0200
committerGitHub <noreply@github.com>2021-08-05 19:28:27 +0200
commitf9bfb2feafe8ae7c1026738a906f5a7f19f496c4 (patch)
tree3901a255d2573f21f07018ac9a0f6bbebe30ba10 /src/main/java/gregtech/api/objects
parentd5736f33eb91377d82d4474a7968f890450c517e (diff)
parent35937ca89911c2b29f0a6027963c7439762045e7 (diff)
downloadGT5-Unofficial-f9bfb2feafe8ae7c1026738a906f5a7f19f496c4.tar.gz
GT5-Unofficial-f9bfb2feafe8ae7c1026738a906f5a7f19f496c4.tar.bz2
GT5-Unofficial-f9bfb2feafe8ae7c1026738a906f5a7f19f496c4.zip
Merge pull request #625 from GTNewHorizons/speedup
GT_Recipe Speedup
Diffstat (limited to 'src/main/java/gregtech/api/objects')
-rw-r--r--src/main/java/gregtech/api/objects/iterators/MergedIterator.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/objects/iterators/MergedIterator.java b/src/main/java/gregtech/api/objects/iterators/MergedIterator.java
new file mode 100644
index 0000000000..77fac8d22f
--- /dev/null
+++ b/src/main/java/gregtech/api/objects/iterators/MergedIterator.java
@@ -0,0 +1,30 @@
+package gregtech.api.objects.iterators;
+
+import java.util.Iterator;
+
+public class MergedIterator<T> implements Iterator<T> {
+ private final Iterator<T>[] inners;
+ private int current;
+
+ @SafeVarargs
+ public MergedIterator(Iterator<T>... iterators) {
+ inners = iterators;
+ current = 0;
+ }
+
+ public boolean hasNext() {
+ while (current < inners.length && !inners[current].hasNext()) {
+ current++;
+ }
+
+ return current < inners.length;
+ }
+
+ public T next() {
+ while (current < inners.length && !inners[current].hasNext()) {
+ current++;
+ }
+
+ return inners[current].next();
+ }
+}