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