СПРАВОЧНИК

Стандартная библиотека Kotlin

Коллекции, строки, scope-функции

Справочник по самым ходовым функциям стандартной библиотеки Kotlin: операции над коллекциями (преобразование, поиск, агрегация, сортировка), работа со строками, scope-функции и вспомогательные утилиты. Каждая запись содержит сигнатуру и короткий рабочий пример с результатом.

Коллекции (агрегация) 9

List.average()
fun Iterable<Int>.average(): DoubleВозвращает среднее арифметическое элементов.
List.fold()
fun <T, R> Iterable<T>.fold(initial: R, operation: (acc: R, T) -> R): RСворачивает коллекцию в значение с заданным начальным аккумулятором.
List.max()
fun <T : Comparable<T>> Iterable<T>.max(): TВозвращает максимальный элемент (бросает исключение на пустой).
List.maxByOrNull()
fun <T, R : Comparable<R>> Iterable<T>.maxByOrNull(selector: (T) -> R): T?Возвращает элемент с наибольшим значением, вычисленным selector.
List.maxOrNull()
fun <T : Comparable<T>> Iterable<T>.maxOrNull(): T?Возвращает максимум или null для пустой коллекции.
List.minOrNull()
fun <T : Comparable<T>> Iterable<T>.minOrNull(): T?Возвращает минимум или null для пустой коллекции.
List.reduce()
fun <S, T : S> Iterable<T>.reduce(operation: (acc: S, T) -> S): SСворачивает коллекцию в одно значение, начиная с первого элемента.
List.sum()
fun Iterable<Int>.sum(): IntСчитает сумму числовых элементов коллекции.
List.sumOf()
fun <T> Iterable<T>.sumOf(selector: (T) -> Int): IntСуммирует значения, вычисленные из каждого элемента.

Коллекции (поиск/проверка) 8

Коллекции (преобразование) 10

List.associate()
fun <T, K, V> Iterable<T>.associate(transform: (T) -> Pair<K, V>): Map<K, V>Строит Map из пар ключ-значение, полученных из каждого элемента.
List.associateBy()
fun <T, K> Iterable<T>.associateBy(keySelector: (T) -> K): Map<K, T>Строит Map, где ключ вычисляется из элемента, а значение — сам элемент.
List.filter()
fun <T> Iterable<T>.filter(predicate: (T) -> Boolean): List<T>Оставляет только элементы, удовлетворяющие условию.
List.filterNot()
fun <T> Iterable<T>.filterNot(predicate: (T) -> Boolean): List<T>Оставляет элементы, НЕ удовлетворяющие условию.
List.flatMap()
fun <T, R> Iterable<T>.flatMap(transform: (T) -> Iterable<R>): List<R>Преобразует каждый элемент в коллекцию и склеивает всё в один плоский список.
List.groupBy()
fun <T, K> Iterable<T>.groupBy(keySelector: (T) -> K): Map<K, List<T>>Группирует элементы по ключу в Map со списками.
List.map()
fun <T, R> Iterable<T>.map(transform: (T) -> R): List<R>Применяет функцию к каждому элементу и возвращает новый список результатов.
List.mapIndexed()
fun <T, R> Iterable<T>.mapIndexed(transform: (index: Int, T) -> R): List<R>Как map(), но в функцию передаётся ещё и индекс элемента.
List.partition()
fun <T> Iterable<T>.partition(predicate: (T) -> Boolean): Pair<List<T>, List<T>>Разбивает коллекцию на две: подходящие и не подходящие под условие.
List.zip()
fun <T, R> Iterable<T>.zip(other: Iterable<R>): List<Pair<T, R>>Соединяет два списка попарно по позициям.

Коллекции (прочее) 6

Коллекции (сортировка/срезы) 10

List.chunked()
fun <T> Iterable<T>.chunked(size: Int): List<List<T>>Разбивает коллекцию на куски заданного размера.
List.distinct()
fun <T> Iterable<T>.distinct(): List<T>Убирает дубликаты, сохраняя порядок первого вхождения.
List.drop()
fun <T> Iterable<T>.drop(n: Int): List<T>Отбрасывает первые n элементов, возвращая остаток.
List.reversed()
fun <T> Iterable<T>.reversed(): List<T>Возвращает список с элементами в обратном порядке.
List.slice()
fun <T> List<T>.slice(indices: IntRange): List<T>Возвращает срез по диапазону индексов.
List.sorted()
fun <T : Comparable<T>> Iterable<T>.sorted(): List<T>Возвращает новый список, отсортированный по возрастанию.
List.sortedBy()
fun <T, R : Comparable<R>> Iterable<T>.sortedBy(selector: (T) -> R?): List<T>Сортирует по ключу, вычисленному из элемента.
List.sortedDescending()
fun <T : Comparable<T>> Iterable<T>.sortedDescending(): List<T>Возвращает список, отсортированный по убыванию.
List.take()
fun <T> Iterable<T>.take(n: Int): List<T>Берёт первые n элементов.
List.windowed()
fun <T> Iterable<T>.windowed(size: Int, step: Int = 1): List<List<T>>Создаёт скользящие окна заданного размера.

Прочее 4

Строки 12

String.contains()
operator fun String.contains(other: CharSequence): BooleanПроверяет, содержит ли строка подстроку.
String.length
val String.length: IntСвойство: число символов в строке.
String.lowercase()
fun String.lowercase(): StringПереводит все символы строки в нижний регистр.
String.padStart()
fun String.padStart(length: Int, padChar: Char = ' '): StringДополняет строку слева до нужной длины.
String.repeat()
fun String.repeat(n: Int): StringПовторяет строку n раз.
String.replace()
fun String.replace(oldValue: String, newValue: String): StringЗаменяет все вхождения подстроки на другую.
String.split()
fun String.split(vararg delimiters: String): List<String>Разбивает строку на список подстрок по разделителю.
String.startsWith()
fun String.startsWith(prefix: String): BooleanПроверяет, начинается ли строка с заданной подстроки.
String.substring()
fun String.substring(startIndex: Int, endIndex: Int = length): StringВозвращает подстроку по диапазону индексов.
String.toIntOrNull()
fun String.toIntOrNull(): Int?Парсит строку в Int или возвращает null при ошибке.
String.trim()
fun String.trim(): StringУбирает пробельные символы в начале и конце строки.
String.uppercase()
fun String.uppercase(): StringПереводит все символы строки в верхний регистр.

Scope-функции 5

Поддержать проект