0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Одной из самых распространенных операций является<strong>фильтрация</strong>. Рассмотрим, как это выглядит в Kotlin.</p>
1
<p>Одной из самых распространенных операций является<strong>фильтрация</strong>. Рассмотрим, как это выглядит в Kotlin.</p>
2
<h2>Фильтрация по условию в Kotlin</h2>
2
<h2>Фильтрация по условию в Kotlin</h2>
3
<p>Для выполнения<strong>фильтрации по условию</strong>используют функцию filter(). В качестве своего параметра данная функция принимает предикатное условие в виде функции<strong>(T) -> Boolean</strong>.</p>
3
<p>Для выполнения<strong>фильтрации по условию</strong>используют функцию filter(). В качестве своего параметра данная функция принимает предикатное условие в виде функции<strong>(T) -> Boolean</strong>.</p>
4
<p>То есть в качестве параметра функция предиката принимает элемент набора. Когда элемент отвечает условию, возвращается<strong>true</strong>, причем этот элемент помещается в возвращаемый набор.</p>
4
<p>То есть в качестве параметра функция предиката принимает элемент набора. Когда элемент отвечает условию, возвращается<strong>true</strong>, причем этот элемент помещается в возвращаемый набор.</p>
5
<p>Также следует сказать, что:</p>
5
<p>Также следует сказать, что:</p>
6
<ul><li>для коллекций<strong>List</strong>и<strong>Set</strong>данная функция возвращает объект<strong>List</strong>,</li>
6
<ul><li>для коллекций<strong>List</strong>и<strong>Set</strong>данная функция возвращает объект<strong>List</strong>,</li>
7
<li>для<strong>Map</strong>-- объект<strong>Map</strong>,</li>
7
<li>для<strong>Map</strong>-- объект<strong>Map</strong>,</li>
8
<li>для последовательностей<strong>Sequence</strong>-- объект<strong>Sequence</strong>.</li>
8
<li>для последовательностей<strong>Sequence</strong>-- объект<strong>Sequence</strong>.</li>
9
</ul><p>Если же необходимо получить элементы, которые, напротив, условию НЕ соответствуют, тогда в Kotlin можно задействовать функцию filterNot(), которая функционирует аналогично:</p>
9
</ul><p>Если же необходимо получить элементы, которые, напротив, условию НЕ соответствуют, тогда в Kotlin можно задействовать функцию filterNot(), которая функционирует аналогично:</p>
10
<h2>Фильтрация по индексу в Kotlin</h2>
10
<h2>Фильтрация по индексу в Kotlin</h2>
11
<p>Функция filterIndexed() тоже получает индекс текущего элемента:</p>
11
<p>Функция filterIndexed() тоже получает индекс текущего элемента:</p>
12
<p>В примере ниже мы получаем из коллекции строк элементы с четными индексами при их длине в три символа:</p>
12
<p>В примере ниже мы получаем из коллекции строк элементы с четными индексами при их длине в три символа:</p>
13
<h2>Фильтрация по типу в Kotlin</h2>
13
<h2>Фильтрация по типу в Kotlin</h2>
14
<p>Бывают ситуации, когда коллекция либо последовательность включает в себя элементы разных типов. Извлечь в данном случае элементы определенного типа можно посредством функции filterIsInstance():</p>
14
<p>Бывают ситуации, когда коллекция либо последовательность включает в себя элементы разных типов. Извлечь в данном случае элементы определенного типа можно посредством функции filterIsInstance():</p>
15
<p>Таким образом, мы получаем из коллекции<strong>people</strong>лишь объекты, представляющие тип<strong>Employee</strong>. Для указания типа получаемых объектов в процессе вызова функция типизируется соответствующим типом.</p>
15
<p>Таким образом, мы получаем из коллекции<strong>people</strong>лишь объекты, представляющие тип<strong>Employee</strong>. Для указания типа получаемых объектов в процессе вызова функция типизируется соответствующим типом.</p>
16
<h2>Фильтрация по null в Kotlin</h2>
16
<h2>Фильтрация по null в Kotlin</h2>
17
<p>Функция filterNotNull() дает возможность отфильтровывать все значение, равные<strong>null</strong>:</p>
17
<p>Функция filterNotNull() дает возможность отфильтровывать все значение, равные<strong>null</strong>:</p>
18
<p>Осталось лишь рассмотреть пример:</p>
18
<p>Осталось лишь рассмотреть пример:</p>
19
<p><em>По материалам https://metanit.com/kotlin/tutorial/.</em></p>
19
<p><em>По материалам https://metanit.com/kotlin/tutorial/.</em></p>
20
20