Junior
71
questionbank

Какие стандартные функции для работы с коллекциями в Kotlin вы знаете?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Стандартные функции для работы с коллекциями в 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