РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
496 of 723 menu

Метод where

Метод where класса Stream создает новый поток, который содержит только те элементы исходного потока, для которых переданная функция-предикат вернула true. В первый параметр мы передаем функцию проверки, которая принимает элемент потока и возвращает bool. Элементы, для которых функция вернула false, в результирующий поток не попадают.

Синтаксис

Stream<T> where(bool test(T element))

Пример

Давайте отфильтруем поток и оставим только четные числа:

void main() { Stream<int> stream = Stream.fromIterable([1, 2, 3, 4, 5]); stream.where((int num) => num % 2 == 0).listen((int num) { print(num); }); }

Результат выполнения кода:

2 4

Пример

Давайте отфильтруем поток строк и оставим только те, которые начинаются с буквы 'a':

void main() { Stream<String> stream = Stream.fromIterable(['abcde', 'bcdea', 'acbde']); stream.where((String str) => str.startsWith('a')).listen((String str) { print(str); }); }

Результат выполнения кода:

"abcde" "acbde"

Пример

Давайте применим фильтрацию несколько раз подряд, чтобы оставить только числа больше 1 и меньше 5:

void main() { Stream<int> stream = Stream.fromIterable([1, 2, 3, 4, 5]); stream .where((int num) => num > 1) .where((int num) => num < 5) .listen((int num) { print(num); }); }

Результат выполнения кода:

2 3 4

Смотрите также

  • класс Stream,
    который представляет поток асинхронных событий
  • метод map,
    который преобразует элементы потока
  • метод listen,
    который подписывается на события потока
  • метод take,
    который берет первые элементы потока
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить