Стандартные функции для работы с коллекциями в Kotlin очень разнообразны и позволяют выполнять множество операций:
Операции трансформации:
map: Преобразует каждый элемент коллекции в новый элемент, возвращая новую коллекцию с результатами.flatMap: Преобразует каждый элемент в коллекцию элементов и объединяет все результирующие коллекции в одну.zip: Создает пары из элементов двух коллекций с одинаковыми индексами.unzip: Разбивает коллекцию пар на две коллекции.Операции фильтрации:
filter: Возвращает коллекцию, содержащую только элементы, удовлетворяющие заданному предикату.filterNotNull: Возвращает новую коллекцию, содержащую только ненулевые элементы.filterIsInstance: Возвращает коллекцию, содержащую только элементы заданного типа.distinct: Возвращает коллекцию с уникальными элементами.drop: Возвращает коллекцию без первых N элементов.dropLast: Возвращает коллекцию без последних N элементов.take: Возвращает первых N элементов коллекции.takeLast: Возвращает последних N элементов коллекции.Операции упорядочивания:
sorted: Возвращает отсортированную коллекцию в естественном порядке.sortedBy: Возвращает коллекцию, отсортированную по результату вычисления заданного селектора для каждого элемента.sortedDescending: Возвращает коллекцию, отсортированную в обратном естественном порядке.sortedByDescending: Возвращает коллекцию, отсортированную в обратном порядке по результату вычисления заданного селектора.reversed: Возвращает список с элементами в обратном порядке.Операции агрегации (редукции):
fold: Свертывает коллекцию в одно значение, применяя функцию к аккумулятору и каждому элементу. Имеет начальное значение аккумулятора.reduce: Свертывает коллекцию в одно значение, применяя функцию к аккумулятору и каждому элементу. Первым значением аккумулятора является первый элемент коллекции.sum: Вычисляет сумму всех числовых элементов коллекции.average: Вычисляет среднее значение числовых элементов коллекции.count: Возвращает количество элементов в коллекции.maxOrNull: Возвращает максимальный элемент или null, если коллекция пуста.minOrNull: Возвращает минимальный элемент или null, если коллекция пуста.maxByOrNull: Возвращает элемент, для которого заданный селектор возвращает максимальное значение.minByOrNull: Возвращает элемент, для которого заданный селектор возвращает минимальное значение.Операции поиска элементов:
find: Возвращает первый элемент, удовлетворяющий заданному предикату, или null.findLast: Возвращает последний элемент, удовлетворяющий заданному предикату, или null.first: Возвращает первый элемент.last: Возвращает последний элемент.firstOrNull: Возвращает первый элемент или null, если коллекция пуста.lastOrNull: Возвращает последний элемент или null, если коллекция пуста.indexOf: Возвращает индекс первого вхождения заданного элемента.lastIndexOf: Возвращает индекс последнего вхождения заданного элемента.single: Возвращает единственный элемент, если он есть. Выбрасывает исключение, если элементов нет или их больше одного.singleOrNull: Возвращает единственный элемент или null, если элементов нет или их больше одного.Операции над частями коллекции:
slice: Возвращает список элементов по заданным индексам.chunked: Разделяет коллекцию на списки заданного размера.windowed: Создает скользящие окна заданного размера.Операции сгруппировки:
groupBy: Группирует элементы по ключу, возвращая Map, где ключ - результат функции-селектора, а значение - список элементов с этим ключом.groupingBy: Возвращает объект Grouping, который позволяет выполнять ленивые агрегации над группами.Операции проверки:
all: Проверяет, что все элементы удовлетворяют заданному предикату.any: Проверяет, что хотя бы один элемент удовлетворяет заданному предикату.none: Проверяет, что ни один элемент не удовлетворяет заданному предикату.contains: Проверяет, содержит ли коллекция заданный элемент.isEmpty: Проверяет, является ли коллекция пустой.isNotEmpty: Проверяет, является ли коллекция не пустой.Это лишь часть стандартных функций, доступных для работы с коллекциями в Kotlin. Многие из них имеют перегрузки для разных типов коллекций и параметров.
Пример использования map:
kotlin
Пример использования filter:
kotlin