code: @Override
    public boolean hasNext() {
      while (!(iterators.isEmpty() || iterators.peek().hasNext())) {
        Assert.isFalse(iterators.removeFirst().hasNext(), new IllegalStateException("removing a non-empty Iterator"));
      }
  
      return (!iterators.isEmpty() && iterators.peek().hasNext());
    }
docs: Determines whether another element is available in the iteration.
  
  @return a boolean value indicating whether another element is available in the iteration.
  @see java.util.Iterator#hasNext()