СПРАВОЧНИК
Стандартная библиотека 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
List.all()
fun <T> Iterable<T>.all(predicate: (T) -> Boolean): BooleanПроверяет, что ВСЕ элементы удовлетворяют условию.List.any()
fun <T> Iterable<T>.any(predicate: (T) -> Boolean): BooleanПроверяет, есть ли хотя бы один элемент по условию.List.contains()
operator fun <T> Iterable<T>.contains(element: T): BooleanПроверяет наличие элемента в коллекции (оператор in).List.count()
fun <T> Iterable<T>.count(predicate: (T) -> Boolean): IntСчитает элементы (всего или по условию).List.find()
fun <T> Iterable<T>.find(predicate: (T) -> Boolean): T?Возвращает первый подходящий элемент или null.List.firstOrNull()
fun <T> Iterable<T>.firstOrNull(): T?Возвращает первый элемент или null для пустой коллекции.List.indexOf()
fun <T> Iterable<T>.indexOf(element: T): IntВозвращает индекс первого вхождения элемента или -1.List.none()
fun <T> Iterable<T>.none(predicate: (T) -> Boolean): BooleanПроверяет, что НИ ОДИН элемент не подходит под условие.Коллекции (преобразование) 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
List.flatten()
fun <T> Iterable<Iterable<T>>.flatten(): List<T>Разворачивает вложенные коллекции в один плоский список.List.forEach()
fun <T> Iterable<T>.forEach(action: (T) -> Unit): UnitВыполняет действие для каждого элемента.List.joinToString()
fun <T> Iterable<T>.joinToString(separator: CharSequence = ", "): StringСклеивает элементы в строку с разделителем.List.toList()
fun <T> Iterable<T>.toList(): List<T>Создаёт неизменяемый List из коллекции.List.toMap()
fun <K, V> Iterable<Pair<K, V>>.toMap(): Map<K, V>Собирает Map из коллекции пар.List.toSet()
fun <T> Iterable<T>.toSet(): Set<T>Создаёт Set из коллекции, убирая дубликаты.Коллекции (сортировка/срезы) 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
check()
fun check(value: Boolean, lazyMessage: () -> Any): UnitПроверяет состояние; бросает IllegalStateException при false.repeat()
inline fun repeat(times: Int, action: (Int) -> Unit): UnitПовторяет действие заданное число раз с индексом.require()
fun require(value: Boolean, lazyMessage: () -> Any): UnitПроверяет аргумент; бросает IllegalArgumentException при false.to
infix fun <A, B> A.to(that: B): Pair<A, B>Инфиксная функция, создающая Pair из двух значений.Строки 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
also
inline fun <T> T.also(block: (T) -> Unit): TВыполняет побочное действие с it и возвращает сам объект.apply
inline fun <T> T.apply(block: T.() -> Unit): TНастраивает объект через this и возвращает сам объект.let
inline fun <T, R> T.let(block: (T) -> R): RПередаёт объект как it и возвращает результат блока.run
inline fun <T, R> T.run(block: T.() -> R): RВыполняет блок с this = объект и возвращает результат блока.with
inline fun <T, R> with(receiver: T, block: T.() -> R): RНе extension: вызывает блок с this = receiver.