public static <E> Iterator<E> dropWhile(Iterator<E> iterator, Predicate<E> predicate) {
        return new FilteringIterator<E>(iterator, new DropWhile<E>(predicate));
    }
public static < E > Iterator < E > dropWhile ( Iterator < E > iterator , Predicate < E > predicate ) { return new FilteringIterator < E > ( iterator , new DropWhile < E > ( predicate ) ) ; }
Creates an iterator yielding values from the source iterator up until the
passed predicate doesn't match. E.g:
<code>dropWhile([2, 4, 3, 6], isOdd) -> [2, 4]</code>

@param <E> the iterator element type
@param iterator the source iterator
@param predicate the predicate to be evaluated
@return the resulting iterator