code: public static <E> Iterator<Optional<E>> roundrobinLongest(Iterator<E>... iterators) {
          final Iterator<Iterator<E>> iterator = ArrayIterator.of(iterators);
          return new RoundrobinLongestIterator<E>(iterator);
      }
docs: Multiplexes two iterators into a single iterator. The iteration stops
  when every source iterator is empty.E.g:
  <code>
  roundrobinLongest([1,2], [4]) -> [of 1, of 4, of 2, empty]
  </code>
  
  @param <E> the element type
  @param iterators the source iterators
  @return an iterator containing multiplexed elements