code: public boolean hasNext() {
  		if(next != null) {
  			return true;
  		}
  		// find lowest next:
  		PeekableIterator<E> nextSource = null;
  		for(int i = 0; i < components.size(); i++) {
  			PeekableIterator<E> pi = components.get(i);
  			if(pi.hasNext()) {
  				E piNext = pi.peekNext();
  				if((next == null) || (comparator.compare(next,piNext) > 0)) {
  					nextSource = pi;
  					next = piNext;
  				}
  			}
  		}
  		if(nextSource != null) {
  			nextSource.next();
  		}
  		return next != null;
  	}
docs: /* (non-Javadoc)
  @see java.util.Iterator#hasNext()