code: public static <T> Iterator<T> dropRight(Iterator<T> self, int num) {
          List<T> result = dropRight(toList(self), num);
          return result.listIterator();
      }
docs: Drops the given number of elements from the tail of this Iterator.
  <pre class="groovyTestCase">
  def obliterator = "obliter8".iterator()
  assert abc.dropRight(-1) == ['o', 'b', 'l', 'i', 't', 'e', 'r', '8']
  assert abc.dropRight(0) == ['o', 'b', 'l', 'i', 't', 'e', 'r', '8']
  assert abc.dropRight(1) == ['o', 'b', 'l', 'i', 't', 'e', 'r']
  assert abc.dropRight(4) == ['o', 'b', 'l', 'i']
  assert abc.dropRight(7) == ['o']
  assert abc.dropRight(8) == []
  assert abc.dropRight(9) == []
  </pre>
  
  @param self the original Iterator
  @param num  the number of elements to drop
  @return an Iterator consisting of all the elements of this Iterator minus the last <code>num</code> elements,
  or an empty Iterator if it has less then <code>num</code> elements.
  @since 2.4.0