code: public boolean hasNext() {
  		if(done) return false;
  		if(cachedNext != null) {
  			return true;
  		}
  		while(inner.hasNext()) {
  			String tmp = inner.next();
  			if(tmp.startsWith(prefix)) {
  				cachedNext = tmp;
  				return true;
  			} else if(tmp.compareTo(prefix) > 0) {
  				done = true;
  				return false;
  			}
  		}
  		return false;
  	}
docs: /* (non-Javadoc)
  @see java.util.Iterator#hasNext()