code: public static <T> Iterator<T> drop(Iterator<T> self, int num) {
          while (num-- > 0 && self.hasNext()) {
              self.next();
          }
          return self;
      }
docs: Drops the given number of elements from the head of this iterator if they are available.
  The original iterator is stepped along by <code>num</code> elements.
  <pre class="groovyTestCase">
  def iteratorCompare( Iterator a, List b ) {
  a.collect { it } == b
  }
  def iter = [ 1, 2, 3, 4, 5 ].listIterator()
  assert iteratorCompare( iter.drop( 0 ), [ 1, 2, 3, 4, 5 ] )
  iter = [ 1, 2, 3, 4, 5 ].listIterator()
  assert iteratorCompare( iter.drop( 2 ), [ 3, 4, 5 ] )
  iter = [ 1, 2, 3, 4, 5 ].listIterator()
  assert iteratorCompare( iter.drop( 5 ), [] )
  </pre>
  
  @param self the original iterator
  @param num  the number of elements to drop from this iterator
  @return The iterator stepped along by <code>num</code> elements if they exist.
  @since 1.8.1