Kotlin предлагает обширный набор функций расширения для работы с коллекциями, которые делают код более лаконичным и читаемым. Их можно условно разделить на следующие категории:
1. Фильтрация:
filter/filterNot: Возвращает список элементов, соответствующих/не соответствующих предикату.filterNotNull: Возвращает список всех ненулевых элементов.filterIsInstance<T>: Возвращает список всех элементов, являющихся экземплярами типа T.2. Преобразование (Mapping):
map/mapIndexed: Преобразует каждый элемент коллекции в новый элемент. mapIndexed также получает индекс элемента.mapNotNull/mapIndexedNotNull: Преобразует каждый элемент, отбрасывая null.flatMap: Преобразует каждый элемент в коллекцию и объединяет их в одну плоскую коллекцию.zip: Создает коллекцию пар из элементов двух коллекций с одинаковыми индексами.3. Агрегация (Reducing):
reduce/fold: Применяет операцию к последовательным элементам коллекции, накапливая результат. fold принимает начальное значение.sum, average, count, max, min: Базовые агрегирующие функции.4. Упорядочивание:
sorted/sortedDescending: Возвращает отсортированную коллекцию.sortedBy/sortedByDescending: Возвращает отсортированную коллекцию по результату применения функции-селектора.reversed: Возвращает список в обратном порядке.shuffled: Возвращает перемешанный список.5. Получение элементов:
first/firstOrNull: Возвращает первый элемент.last/lastOrNull: Возвращает последний элемент.find/findLast: Возвращает первый/последний элемент, соответствующий предикату.elementAt/elementAtOrNull/elementAtOrElse: Возвращает элемент по индексу.single/singleOrNull: Возвращает единственный элемент, если он есть.6. Проверка условий:
all/any: Проверяет, соответствуют ли все/хотя бы один элемент предикату.none: Проверяет, не соответствует ли ни один элемент предикату.contains: Проверяет наличие элемента.7. Группировка:
groupBy: Группирует элементы по ключу, определяемому функцией-селектором.8. Разделение:
partition: Разделяет коллекцию на две части: элементы, соответствующие предикату, и те, которые не соответствуют.chunked: Разбивает коллекцию на части заданного размера.9. Сравнение коллекций:
equals: Сравнивает содержимое двух коллекций.containsAll: Проверяет, содержит ли коллекция все элементы другой коллекции.10. Множественные операции:
intersect: Возвращает общие элементы двух коллекций.subtract: Возвращает элементы первой коллекции, отсутствующие во второй.union: Возвращает все уникальные элементы из обеих коллекций.Примеры использования:
kotlin