diff options
| author | Martin Robertz <dream-master@gmx.net> | 2021-08-05 19:28:27 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-05 19:28:27 +0200 |
| commit | f9bfb2feafe8ae7c1026738a906f5a7f19f496c4 (patch) | |
| tree | 3901a255d2573f21f07018ac9a0f6bbebe30ba10 /src/main/java/gregtech/api/objects | |
| parent | d5736f33eb91377d82d4474a7968f890450c517e (diff) | |
| parent | 35937ca89911c2b29f0a6027963c7439762045e7 (diff) | |
| download | GT5-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.java | 30 |
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(); + } +} |
