code: public static <T> Iterator<T> drop(final Iterator<T> iterator, final int count) {
  		if (iterator == null)
  			throw new NullPointerException("iterator");
  		if (count == 0)
  			return iterator;
  		if (count < 0)
  			throw new IllegalArgumentException("Cannot drop a negative number of elements. Argument 'count' was: "
  					+ count);
  		return new AbstractIterator<T>() {
  			{
  				int i = count;
  				while (i > 0 && iterator.hasNext()) {
  					iterator.next();
  					i--;
  				}
  			}
  
  			@Override
  			protected T computeNext() {
  				if (!iterator.hasNext())
  					return endOfData();
  				return iterator.next();
  			}
  		};
  	}
docs: Returns a view on this iterator that provides all elements except the first <code>count</code> entries.
  
  @param iterator
  the iterator. May not be <code>null</code>.
  @param count
  the number of elements that should be dropped.
  @return an iterator without the first <code>count</code> elements. Never <code>null</code>.
  @throws IllegalArgumentException
  if <code>count</code> is negative.