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

Метод distinct

Метод distinct класса Stream создает новый поток, который пропускает элементы, если они равны предыдущему элементу. По умолчанию сравнение происходит с помощью оператора ==. В первый параметр можно передать функцию сравнения, которая принимает два элемента и возвращает true, если они считаются одинаковыми.

Синтаксис

Stream<T> distinct([bool Function(T previous, T next)? equals])

Пример

Давайте создадим поток из списка с повторяющимися элементами и удалим дубликаты:

void main() { Stream.fromIterable([1, 2, 2, 3, 3, 3, 4, 5, 5]) .distinct() .toList() .then((res) => print(res)); }

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

[1, 2, 3, 4, 5]

Пример

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

void main() { Stream.fromIterable(['a', 'bb', 'cc', 'ddd', 'ee']) .distinct((prev, next) => prev.length == next.length) .toList() .then((res) => print(res)); }

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

[a, bb, ddd, ee]

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

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