Фильтрация в Kotlin | OTUS

Фильтрация в Kotlin

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

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

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

1-20219-11c5b0.png

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

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

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

2-20219-1e5354.png

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

3-20219-750f4c.png

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

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

4-20219-910ba1.png

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

5-20219-eb31d8.png

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

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

6-20219-c92b6f.png

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

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

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

7-20219-50ba0f.png

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

8-20219-9c31f8.png

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

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто