code: public static IntIterator mergeAscending(List<IntIterator> iterators)
    {
      if (iterators.isEmpty()) {
        return IntIterators.EMPTY_ITERATOR;
      }
      if (iterators.size() == 1) {
        return iterators.get(0);
      }
      return new MergeIntIterator(iterators);
    }
docs: Merges several iterators of ascending {@code int} values into a single iterator of ascending {@code int} values.
  It isn't checked if the given source iterators are actually ascending, if they are not, the order of values in the
  returned iterator is undefined.
  <p>
  This is similar to what {@link org.apache.druid.java.util.common.guava.MergeIterator} does with simple
  {@link java.util.Iterator}s.
  
  @param iterators iterators to merge, must return ascending values