@NotNull
    public Stream<T> dropWhile(@NotNull final Predicate<? super T> predicate) {
        return new Stream<T>(params, new ObjDropWhile<T>(iterator, predicate));
    }
@ NotNull public Stream < T > dropWhile ( @ NotNull final Predicate < ? super T > predicate ) { return new Stream < T > ( params , new ObjDropWhile < T > ( iterator , predicate ) ) ; }
Drops elements while the predicate is true, then returns the rest.

<p>This is an intermediate operation.

<p>Example:
<pre>
predicate: (a) -&gt; a &lt; 3
stream: [1, 2, 3, 4, 1, 2, 3, 4]
result: [3, 4, 1, 2, 3, 4]
</pre>

@param predicate  the predicate used to drop elements
@return the new stream