static ItIt roundRobinCombinedIterator(Iterator... iterators) {
if (empty(iterators)) ret emptyIterator();
class Robin implements IF0 {
L> activeIterators = ll(iterators);
int i;
public O get() {
while licensed {
Iterator it = activeIterators.get(i);
if (!it.hasNext()) {
activeIterators.remove(i);
if (empty(activeIterators)) break;
i %= l(activeIterators);
} else {
i = (i+1) % l(activeIterators);
ret it.next();
}
}
ret endMarker();
}
}
ret iff(new Robin);
}