code: public static <E> Iterator<E> dropWhile(Iterable<E> iterable, Predicate<E> predicate) {
          dbc.precondition(iterable != null, "cannot dropWhile from a null iterable");
          return new FilteringIterator<E>(iterable.iterator(), new DropWhile<E>(predicate));
      }
docs: Creates an iterator yielding values from the source iterable up until the
  passed predicate doesn't match. E.g:
  <code>dropWhile([2, 4, 3, 6], isOdd) -> [2, 4]</code>
  
  @param <E> the iterable element type
  @param iterable the source iterable
  @param predicate the predicate to be evaluated
  @return the resulting iterator