Stream.dropWhile()
Пропускает элементы, пока выполняется условие, и отдаёт всё остальное.
Доступно с: Java 9
Синтаксис
default Stream<T> dropWhile(Predicate<? super T> predicate)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| predicate | Predicate<? super T> | Условие, пока оно истинно, элементы отбрасываются. |
Возвращаемое значение
Stream<T>Остаток потока, начиная с первого неподходящего элемента.
Примеры
Пропуск строк-заголовков:
void main() {
List<String> lines = List.of("# title", "# author", "first line", "# not a header", "last line");
lines.stream()
.dropWhile(l -> l.startsWith("#"))
.forEach(IO::println);
}Результат:
first line
# not a header
last lineПримечания
После первого неподходящего элемента условие больше не проверяется — поэтому строка # not a header осталась. Это зеркальная пара к takeWhile().
См. также
- Stream.takeWhile() — Берёт элементы, пока выполняется условие, и останавливается на первом неподходящем.
- Stream.skip() — Пропускает первые N элементов потока.
В учебнике
- Операции над потоками — Основные операции Stream API — filter, map, sorted, distinct, limit, skip, count, reduce, anyMatch, findFirst и числовые потоки.