Фильтрация в Kotlin
2026-03-10 00:56 Diff

Одной из самых распространенных операций является фильтрация. Рассмотрим, как это выглядит в Kotlin.

Фильтрация по условию в Kotlin

Для выполнения фильтрации по условию используют функцию filter(). В качестве своего параметра данная функция принимает предикатное условие в виде функции (T) -> Boolean.

То есть в качестве параметра функция предиката принимает элемент набора. Когда элемент отвечает условию, возвращается true, причем этот элемент помещается в возвращаемый набор.

Также следует сказать, что:

  • для коллекций List и Set данная функция возвращает объект List,
  • для Map -- объект Map,
  • для последовательностей Sequence -- объект Sequence.

Если же необходимо получить элементы, которые, напротив, условию НЕ соответствуют, тогда в Kotlin можно задействовать функцию filterNot(), которая функционирует аналогично:

Фильтрация по индексу в Kotlin

Функция filterIndexed() тоже получает индекс текущего элемента:

В примере ниже мы получаем из коллекции строк элементы с четными индексами при их длине в три символа:

Фильтрация по типу в Kotlin

Бывают ситуации, когда коллекция либо последовательность включает в себя элементы разных типов. Извлечь в данном случае элементы определенного типа можно посредством функции filterIsInstance():

Таким образом, мы получаем из коллекции people лишь объекты, представляющие тип Employee. Для указания типа получаемых объектов в процессе вызова функция типизируется соответствующим типом.

Фильтрация по null в Kotlin

Функция filterNotNull() дает возможность отфильтровывать все значение, равные null:

Осталось лишь рассмотреть пример:

По материалам https://metanit.com/kotlin/tutorial/.