HTML Diff
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) -&gt; Boolean</strong>.</p>
3 <p>Для выполнения<strong>фильтрации по условию</strong>используют функцию filter(). В качестве своего параметра данная функция принимает предикатное условие в виде функции<strong>(T) -&gt; 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