diff options
author | boubou_19 <miisterunknown@gmail.com> | 2021-08-16 20:32:53 +0200 |
---|---|---|
committer | boubou_19 <miisterunknown@gmail.com> | 2021-08-16 20:32:53 +0200 |
commit | 8f5dd5625e4632bbecda0771caad47bbbbd35d4c (patch) | |
tree | 15d544c783cd17606e6d71259eefc062ba4ea8e5 /src/main/java/gregtech/api/objects/iterators | |
parent | 99030ff940686562c7e4f133919fb1496b0575f4 (diff) | |
parent | c543724aa11d696fa049855e7b330364c1000a17 (diff) | |
download | GT5-Unofficial-8f5dd5625e4632bbecda0771caad47bbbbd35d4c.tar.gz GT5-Unofficial-8f5dd5625e4632bbecda0771caad47bbbbd35d4c.tar.bz2 GT5-Unofficial-8f5dd5625e4632bbecda0771caad47bbbbd35d4c.zip |
Merge remote-tracking branch 'upstream/experimental' into experimental
Diffstat (limited to 'src/main/java/gregtech/api/objects/iterators')
-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(); + } +} |