Linked Hash Set
Требования к платформе и версии: Общие (1.0)
expect class LinkedHashSet<E> : MutableSet<E>
Реализация MutableSet на основе хеш-таблицы, сохраняющая порядок вставки.
Этот класс хранит уникальные элементы с помощью структуры данных на основе хеш-таблицы, которая обеспечивает быстрый поиск и исключает хранение повторяющихся элементов, сохраняя при этом порядок их вставки. Класс полностью реализует контракт MutableSet, предоставляя все стандартные операции над множеством, включая поиск, вставку и удаление.
Элементы null
LinkedHashSet принимает null в качестве элемента. Поскольку элементы уникальны, множество может содержать не более одного элемента null.
Контракты хеш-кода и равенства элементов
LinkedHashSet использует функции Any.hashCode и Any.equals элементов для их организации и поиска. Элементы считаются равными, если функция Any.equals возвращает true, а равные элементы должны иметь одинаковое значение Any.hashCode. Нарушение этого контракта может привести к некорректному поведению, например к хранению повторяющихся элементов или к невозможности найти элементы.
Функции Any.hashCode и Any.equals должны быть согласованными и неизменными в течение всего времени существования объектов-элементов. Изменение элемента, влияющее на его хеш-код или равенство после добавления в LinkedHashSet, может привести к тому, что элемент станет недоступен.
Характеристики производительности
Приведённые ниже характеристики производительности предполагают, что функция Any.hashCode элементов равномерно распределяет их по хеш-таблице, сводя коллизии к минимуму. Неудачная хеш-функция, вызывающая множество коллизий, может снизить производительность.
LinkedHashSet обеспечивает эффективную реализацию распространённых операций:
Порядок итерации
LinkedHashSet поддерживает предсказуемый порядок итерации по элементам. Элементы перебираются в порядке их добавления в множество — от самых ранних к самым поздним. Этот порядок вставки сохраняется и при рехешировании множества (когда элементы добавляются или удаляются, а внутренняя ёмкость изменяется).
Обратите внимание, что повторная вставка элемента в множество не влияет на порядок вставки. Элемент e вставляется в множество повторно, когда вызывается add(e), а множество уже содержит элемент, равный e.
Если предсказуемый порядок итерации не требуется, рассмотрите возможность использования HashSet, производительность которого может быть немного выше.
Рекомендации по использованию
LinkedHashSet использует внутреннюю структуру данных с конечной ёмкостью — максимальным количеством элементов, которое она может хранить до необходимости увеличения. По мере добавления элементов множество отслеживает коэффициент заполнения — отношение количества элементов к текущей ёмкости. Когда это отношение превышает определённый порог, множество автоматически увеличивает ёмкость и выполняет рехеширование — перестраивает внутреннюю структуру данных, чтобы перераспределить элементы. Рехеширование — относительно затратная операция, временно снижающая производительность. При создании LinkedHashSet можно указать начальную ёмкость и пороговый коэффициент заполнения. Обратите внимание, что эти параметры являются лишь подсказками для реализации и могут быть проигнорированы.
Для оптимизации производительности и использования памяти:
Если количество элементов заранее известно, используйте конструктор с начальной ёмкостью, чтобы избежать многократного рехеширования по мере роста множества.
Выбирайте подходящий коэффициент заполнения при создании множества. Более низкий коэффициент уменьшает вероятность коллизий, но требует больше памяти, тогда как более высокий экономит память, но может увеличить время поиска. Значение коэффициента заполнения по умолчанию обычно обеспечивает хороший баланс.
Убедитесь, что объекты-элементы имеют реализации Any.hashCode с хорошим распределением, чтобы свести коллизии к минимуму и сохранить высокую производительность.
При добавлении нескольких элементов предпочитайте addAll многократным отдельным вызовам add.
Потокобезопасность
LinkedHashSet не является потокобезопасным. Если несколько потоков одновременно обращаются к экземпляру и хотя бы один из них изменяет его, требуется внешняя синхронизация.
Параметры типа
тип элементов, содержащихся во множестве. Изменяемое множество инвариантно относительно типа элементов.
Требования к платформе и версии: JS (1.1)
actual open class LinkedHashSet<E> : HashSet<E> , MutableSet<E>
Реализация MutableSet на основе хеш-таблицы, сохраняющая порядок вставки.
Этот класс хранит уникальные элементы с помощью структуры данных на основе хеш-таблицы, которая обеспечивает быстрый поиск и исключает хранение повторяющихся элементов, сохраняя при этом порядок их вставки. Класс полностью реализует контракт MutableSet, предоставляя все стандартные операции над множеством, включая поиск, вставку и удаление.
Элементы null
LinkedHashSet принимает null в качестве элемента. Поскольку элементы уникальны, множество может содержать не более одного элемента null.
Контракты хеш-кода и равенства элементов
LinkedHashSet использует функции Any.hashCode и Any.equals элементов для их организации и поиска. Элементы считаются равными, если функция Any.equals возвращает true, а равные элементы должны иметь одинаковое значение Any.hashCode. Нарушение этого контракта может привести к некорректному поведению, например к хранению повторяющихся элементов или к невозможности найти элементы.
Функции Any.hashCode и Any.equals должны быть согласованными и неизменными в течение всего времени существования объектов-элементов. Изменение элемента, влияющее на его хеш-код или равенство после добавления в LinkedHashSet, может привести к тому, что элемент станет недоступен.
Характеристики производительности
Приведённые ниже характеристики производительности предполагают, что функция Any.hashCode элементов равномерно распределяет их по хеш-таблице, сводя коллизии к минимуму. Неудачная хеш-функция, вызывающая множество коллизий, может снизить производительность.
LinkedHashSet обеспечивает эффективную реализацию распространённых операций:
Порядок итерации
LinkedHashSet поддерживает предсказуемый порядок итерации по элементам. Элементы перебираются в порядке их добавления в множество — от самых ранних к самым поздним. Этот порядок вставки сохраняется и при рехешировании множества (когда элементы добавляются или удаляются, а внутренняя ёмкость изменяется).
Обратите внимание, что повторная вставка элемента в множество не влияет на порядок вставки. Элемент e вставляется в множество повторно, когда вызывается add(e), а множество уже содержит элемент, равный e.
Если предсказуемый порядок итерации не требуется, рассмотрите возможность использования HashSet, производительность которого может быть немного выше.
Рекомендации по использованию
LinkedHashSet использует внутреннюю структуру данных с конечной ёмкостью — максимальным количеством элементов, которое она может хранить до необходимости увеличения. Когда множество заполняется, оно автоматически увеличивает ёмкость и выполняет рехеширование — перестраивает внутреннюю структуру данных, чтобы перераспределить элементы. Рехеширование — относительно затратная операция, временно снижающая производительность. При создании LinkedHashSet можно указать начальное значение ёмкости, которое будет использоваться для задания размера внутренней структуры данных и, возможно, позволит избежать рехеширования по мере роста множества.
Для оптимизации производительности и использования памяти:
Если количество элементов заранее известно, используйте конструктор с начальной ёмкостью, чтобы избежать многократного рехеширования по мере роста множества.
Убедитесь, что объекты-элементы имеют реализации Any.hashCode с хорошим распределением, чтобы свести коллизии к минимуму и сохранить высокую производительность.
При добавлении нескольких элементов предпочитайте addAll многократным отдельным вызовам add.
Потокобезопасность
LinkedHashSet не является потокобезопасным. Если несколько потоков одновременно обращаются к экземпляру и хотя бы один из них изменяет его, требуется внешняя синхронизация.
Параметры типа
тип элементов, содержащихся во множестве. Изменяемое множество инвариантно относительно типа элементов.
Требования к платформе и версии: JVM (1.1)
actual typealias LinkedHashSet<E> = java.util.LinkedHashSet<E>
Реализация MutableSet на основе хеш-таблицы, сохраняющая порядок вставки.
Этот класс хранит уникальные элементы с помощью структуры данных на основе хеш-таблицы, которая обеспечивает быстрый поиск и исключает хранение повторяющихся элементов, сохраняя при этом порядок их вставки. Класс полностью реализует контракт MutableSet, предоставляя все стандартные операции над множеством, включая поиск, вставку и удаление.
Элементы null
LinkedHashSet принимает null в качестве элемента. Поскольку элементы уникальны, множество может содержать не более одного элемента null.
Контракты хеш-кода и равенства элементов
LinkedHashSet использует функции Any.hashCode и Any.equals элементов для их организации и поиска. Элементы считаются равными, если функция Any.equals возвращает true, а равные элементы должны иметь одинаковое значение Any.hashCode. Нарушение этого контракта может привести к некорректному поведению, например к хранению повторяющихся элементов или к невозможности найти элементы.
Функции Any.hashCode и Any.equals должны быть согласованными и неизменными в течение всего времени существования объектов-элементов. Изменение элемента, влияющее на его хеш-код или равенство после добавления в LinkedHashSet, может привести к тому, что элемент станет недоступен.
Характеристики производительности
Приведённые ниже характеристики производительности предполагают, что функция Any.hashCode элементов равномерно распределяет их по хеш-таблице, сводя коллизии к минимуму. Неудачная хеш-функция, вызывающая множество коллизий, может снизить производительность.
LinkedHashSet обеспечивает эффективную реализацию распространённых операций:
Порядок итерации
LinkedHashSet поддерживает предсказуемый порядок итерации по элементам. Элементы перебираются в порядке их добавления в множество — от самых ранних к самым поздним. Этот порядок вставки сохраняется и при рехешировании множества (когда элементы добавляются или удаляются, а внутренняя ёмкость изменяется).
Обратите внимание, что повторная вставка элемента в множество не влияет на порядок вставки. Элемент e вставляется в множество повторно, когда вызывается add(e), а множество уже содержит элемент, равный e.
Если предсказуемый порядок итерации не требуется, рассмотрите возможность использования HashSet, производительность которого может быть немного выше.
Рекомендации по использованию
LinkedHashSet использует внутреннюю структуру данных с конечной ёмкостью — максимальным количеством элементов, которое она может хранить до необходимости увеличения. По мере добавления элементов множество отслеживает коэффициент заполнения — отношение количества элементов к текущей ёмкости. Когда это отношение превышает определённый порог, множество автоматически увеличивает ёмкость и выполняет рехеширование — перестраивает внутреннюю структуру данных, чтобы перераспределить элементы. Рехеширование — относительно затратная операция, временно снижающая производительность. При создании LinkedHashSet можно указать начальную ёмкость и пороговый коэффициент заполнения. Обратите внимание, что эти параметры являются лишь подсказками для реализации и могут быть проигнорированы.
Для оптимизации производительности и использования памяти:
Если количество элементов заранее известно, используйте конструктор с начальной ёмкостью, чтобы избежать многократного рехеширования по мере роста множества.
Выбирайте подходящий коэффициент заполнения при создании множества. Более низкий коэффициент уменьшает вероятность коллизий, но требует больше памяти, тогда как более высокий экономит память, но может увеличить время поиска. Значение коэффициента заполнения по умолчанию обычно обеспечивает хороший баланс.
Убедитесь, что объекты-элементы имеют реализации Any.hashCode с хорошим распределением, чтобы свести коллизии к минимуму и сохранить высокую производительность.
При добавлении нескольких элементов предпочитайте addAll многократным отдельным вызовам add.
Потокобезопасность
LinkedHashSet не является потокобезопасным. Если несколько потоков одновременно обращаются к экземпляру и хотя бы один из них изменяет его, требуется внешняя синхронизация.
Параметры типа
тип элементов, содержащихся во множестве. Изменяемое множество инвариантно относительно типа элементов.
Требования к платформе и версии: Native (1.3), Wasm-JS (1.8), Wasm-WASI (1.8)
actual typealias LinkedHashSet<> = HashSet<E>
Реализация MutableSet на основе хеш-таблицы, сохраняющая порядок вставки.
Этот класс хранит уникальные элементы с помощью структуры данных на основе хеш-таблицы, которая обеспечивает быстрый поиск и исключает хранение повторяющихся элементов, сохраняя при этом порядок их вставки. Класс полностью реализует контракт MutableSet, предоставляя все стандартные операции над множеством, включая поиск, вставку и удаление.
Элементы null
LinkedHashSet принимает null в качестве элемента. Поскольку элементы уникальны, множество может содержать не более одного элемента null.
Контракты хеш-кода и равенства элементов
LinkedHashSet использует функции Any.hashCode и Any.equals элементов для их организации и поиска. Элементы считаются равными, если функция Any.equals возвращает true, а равные элементы должны иметь одинаковое значение Any.hashCode. Нарушение этого контракта может привести к некорректному поведению, например к хранению повторяющихся элементов или к невозможности найти элементы.
Функции Any.hashCode и Any.equals должны быть согласованными и неизменными в течение всего времени существования объектов-элементов. Изменение элемента, влияющее на его хеш-код или равенство после добавления в LinkedHashSet, может привести к тому, что элемент станет недоступен.
Характеристики производительности
Приведённые ниже характеристики производительности предполагают, что функция Any.hashCode элементов равномерно распределяет их по хеш-таблице, сводя коллизии к минимуму. Неудачная хеш-функция, вызывающая множество коллизий, может снизить производительность.
LinkedHashSet обеспечивает эффективную реализацию распространённых операций:
Порядок итерации
LinkedHashSet поддерживает предсказуемый порядок итерации по элементам. Элементы перебираются в порядке их добавления в множество — от самых ранних к самым поздним. Этот порядок вставки сохраняется и при рехешировании множества (когда элементы добавляются или удаляются, а внутренняя ёмкость изменяется).
Обратите внимание, что повторная вставка элемента в множество не влияет на порядок вставки. Элемент e вставляется в множество повторно, когда вызывается add(e), а множество уже содержит элемент, равный e.
Если предсказуемый порядок итерации не требуется, рассмотрите возможность использования HashSet, производительность которого может быть немного выше.
Рекомендации по использованию
LinkedHashSet использует внутреннюю структуру данных с конечной ёмкостью — максимальным количеством элементов, которое она может хранить до необходимости увеличения. Когда множество заполняется, оно автоматически увеличивает ёмкость и выполняет рехеширование — перестраивает внутреннюю структуру данных, чтобы перераспределить элементы. Рехеширование — относительно затратная операция, временно снижающая производительность. При создании LinkedHashSet можно указать начальное значение ёмкости, которое будет использоваться для задания размера внутренней структуры данных и, возможно, позволит избежать рехеширования по мере роста множества.
Для оптимизации производительности и использования памяти:
Если количество элементов заранее известно, используйте конструктор с начальной ёмкостью, чтобы избежать многократного рехеширования по мере роста множества.
Убедитесь, что объекты-элементы имеют реализации Any.hashCode с хорошим распределением, чтобы свести коллизии к минимуму и сохранить высокую производительность.
При добавлении нескольких элементов предпочитайте addAll многократным отдельным вызовам add.
Потокобезопасность
LinkedHashSet не является потокобезопасным. Если несколько потоков одновременно обращаются к экземпляру и хотя бы один из них изменяет его, требуется внешняя синхронизация.
Параметры типа
тип элементов, содержащихся во множестве. Изменяемое множество инвариантно относительно типа элементов.
Конструкторы
Требования к платформе и версии: Общие, JS
expect constructor()
Создаёт новое пустое множество LinkedHashSet.
expect constructor(initialCapacity: Int)
Создаёт новое пустое множество LinkedHashSet с указанной начальной ёмкостью.
expect constructor(initialCapacity: Int, loadFactor: Float)
Создаёт новое пустое множество LinkedHashSet с указанными начальной ёмкостью и коэффициентом заполнения.
expect constructor(elements: Collection<E>)
Создаёт новое множество LinkedHashSet, содержащее элементы указанной коллекции.
Свойства
Требования к платформе и версии: Общие (1.0)
val Collection<*>.indices: IntRange
Возвращает IntRange допустимых индексов этой коллекции.
Функции
Требования к платформе и версии: Common (1.0)
expect open override fun addAll(elements: Collection<E>): Boolean
Добавляет все элементы указанной коллекции в эту коллекцию.
Требования к платформе и версии: JS (1.1)
actual open override fun addAll(elements: Collection<E>): Boolean
Добавляет все элементы указанной коллекции в эту коллекцию.
Требования к платформе и версии: Common (1.0)
fun <T> MutableCollection<in T>.addAll(elements: Array<out T>): Boolean
Добавляет все элементы массива elements в эту MutableCollection.
fun <T> MutableCollection<in T>.addAll(elements: Iterable<T>): Boolean
Добавляет все элементы коллекции elements в эту MutableCollection.
fun <T> MutableCollection<in T>.addAll(elements: Sequence<T>): Boolean
Добавляет все элементы последовательности elements в эту MutableCollection.
Требования к платформе и версии: Common (2.4)
fun <T> Iterable<T>.allDistinct(): Boolean
Возвращает true, если все элементы коллекции отличаются друг от друга, то есть никакие два элемента не равны.
Требования к платформе и версии: JS (2.0)
open fun asJsReadonlySetView(): JsReadonlySet<E>
Возвращает представление с методами JsReadonlySet, позволяющее использовать его в JavaScript как обычный неизменяемый Set. Структурные изменения базового множества синхронизируются с представлением.
Требования к платформе и версии: JS (2.0)
open fun asJsSetView(): JsSet<E>
Возвращает представление с методами JsSet, позволяющее использовать его в JavaScript как обычный Set. Структурные изменения базового множества синхронизируются с представлением, и наоборот.
Требования к платформе и версии: Common (1.0)
inline fun <T, K> Iterable<T>.associateBy(keySelector: (T) -> K): Map<K, T>
Возвращает Map, содержащую элементы указанной коллекции, индексированные ключами, возвращаемыми функцией keySelector, примененной к каждому элементу.
inline fun <T, K, V> Iterable<T>.associateBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map<K, V>
Возвращает Map, содержащую значения, полученные с помощью valueTransform и индексированные с помощью функций keySelector, примененных к элементам указанной коллекции.
Требования к платформе и версии: Common (1.0)
inline fun <T, K, M : MutableMap<in K, in T>> Iterable<T>.associateByTo(destination: M, keySelector: (T) -> K): M
Заполняет изменяемую карту destination парами ключ-значение и возвращает ее. Ключ задается функцией keySelector, примененной к каждому элементу указанной коллекции, а значением является сам элемент.
inline fun <T, K, V, M : MutableMap<in K, in V>> Iterable<T>.associateByTo(destination: M, keySelector: (T) -> K, valueTransform: (T) -> V): M
Заполняет изменяемую карту destination парами ключ-значение и возвращает ее. Ключ задается функцией keySelector, а значение — функцией valueTransform, примененными к элементам указанной коллекции.
Требования к платформе и версии: Common (1.0)
inline fun <T, K, V, M : MutableMap<in K, in V>> Iterable<T>.associateTo(destination: M, transform: (T) -> Pair<K, V>): M
Заполняет изменяемую карту destination парами ключ-значение, полученными с помощью функции transform, примененной к каждому элементу указанной коллекции, и возвращает ее.
Требования к платформе и версии: Common (1.3)
inline fun <K, V, M : MutableMap<in K, in V>> Iterable<K>.associateWithTo(destination: M, valueSelector: (K) -> V): M
Заполняет изменяемую карту destination парами ключ-значение для каждого элемента указанной коллекции и возвращает ее. Ключом является сам элемент, а значение задается функцией valueSelector, примененной к этому ключу.
Требования к платформе и версии: Common (1.0)
fun Iterable<Byte>.average(): Double
fun Iterable<Double>.average(): Double
fun Iterable<Float>.average(): Double
fun Iterable<Int>.average(): Double
fun Iterable<Long>.average(): Double
fun Iterable<Short>.average(): Double
Возвращает среднее значение элементов коллекции.
Требования к платформе и версии: Common (1.0)
expect open operator override fun contains(element: E): Boolean
Проверяет, содержится ли указанный элемент в этой коллекции.
Требования к платформе и версии: JS (1.1)
actual open operator override fun contains(element: E): Boolean
Проверяет, содержится ли указанный элемент в этой коллекции.
Требования к платформе и версии: Common (1.0)
expect open override fun containsAll(elements: Collection<E>): Boolean
Проверяет, содержатся ли все элементы указанной коллекции в этой коллекции.
Требования к платформе и версии: JS (1.1)
open override fun containsAll(elements: Collection<E>): Boolean
Проверяет, содержатся ли все элементы указанной коллекции в этой коллекции.
Требования к платформе и версии: Common (1.0)
inline fun <T> Collection<T>.containsAll(elements: Collection<T>): Boolean
Проверяет, содержатся ли все элементы указанной коллекции в этой коллекции.
Требования к платформе и версии: Common (1.0)
inline fun <T> Collection<T>.count(): Int
fun <T> Iterable<T>.count(): Int
Возвращает количество элементов в этой коллекции.
inline fun <T> Iterable<T>.count(predicate: (T) -> Boolean): Int
Возвращает количество элементов, соответствующих заданному предикату.
Требования к платформе и версии: Common (1.0)
inline fun <T, C : MutableCollection<in T>> Iterable<T>.filterIndexedTo(destination: C, predicate: (index: Int, T) -> Boolean): C
Добавляет все элементы, соответствующие заданному предикату, в указанную целевую коллекцию.
Требования к платформе и версии: Common (1.0)
inline fun <R> Iterable<*>.filterIsInstance(): List<R>
Возвращает список, содержащий все элементы, являющиеся экземплярами указанного параметра типа R.
Требования к платформе и версии: JVM (1.0)
fun <R> Iterable<*>.filterIsInstance(klass: Class<R>): List<R>
Возвращает список, содержащий все элементы, являющиеся экземплярами указанного класса.
Требования к платформе и версии: Common (1.0)
inline fun <R, C : MutableCollection<in R>> Iterable<*>.filterIsInstanceTo(destination: C): C
Добавляет все элементы, являющиеся экземплярами указанного параметра типа R, в указанную целевую коллекцию.
Требования к платформе и версии: JVM (1.0)
fun <C : MutableCollection<in R>, R> Iterable<*>.filterIsInstanceTo(destination: C, klass: Class<R>): C
Добавляет все элементы, являющиеся экземплярами указанного класса, в указанную целевую коллекцию.
Требования к платформе и версии: Common (1.0)
fun <C : MutableCollection<in T>, T : Any> Iterable<T?>.filterNotNullTo(destination: C): C
Добавляет все элементы, которые не являются null, в указанную целевую коллекцию.
Требования к платформе и версии: Common (1.0)
inline fun <T, C : MutableCollection<in T>> Iterable<T>.filterNotTo(destination: C, predicate: (T) -> Boolean): C
Добавляет все элементы, не соответствующие заданному предикату, в указанную целевую коллекцию.
Платформа и требования к версии: Common (1.5)
inline fun <T, R : Any> Iterable<T>.firstNotNullOf(transform: (T) -> R?): R
Возвращает первое ненулевое значение, полученное при применении функции преобразования к элементам этой коллекции в порядке итерации, или выбрасывает исключение NoSuchElementException, если ненулевое значение не было получено.
Платформа и требования к версии: Common (1.5)
inline fun <T, R : Any> Iterable<T>.firstNotNullOfOrNull(transform: (T) -> R?): R?
Возвращает первое ненулевое значение, полученное при применении функции преобразования к элементам этой коллекции в порядке итерации, или null, если ненулевое значение не было получено.
Платформа и требования к версии: Common (1.0)
fun <T> Iterable<T>.firstOrNull(): T?
Возвращает первый элемент или null, если коллекция пуста.
inline fun <T> Iterable<T>.firstOrNull(predicate: (T) -> Boolean): T?
Возвращает первый элемент, соответствующий заданному предикату, или null, если такой элемент не найден.
Платформа и требования к версии: Common (1.0)
inline fun <T, R> Iterable<T>.flatMap(transform: (T) -> Iterable<R>): List<R>
Возвращает единый список всех элементов, полученных в результате применения функции преобразования к каждому элементу исходной коллекции.
inline fun <T, R> Iterable<T>.flatMap(transform: (T) -> Sequence<R>): List<R>
Возвращает единый список всех элементов, полученных в результате применения функции преобразования к каждому элементу исходной коллекции.
Платформа и требования к версии: Common (1.4)
inline fun <T, R> Iterable<T>.flatMapIndexed(transform: (index: Int, T) -> Iterable<R>): List<R>
inline fun <T, R> Iterable<T>.flatMapIndexed(transform: (index: Int, T) -> Sequence<R>): List<R>
Возвращает единый список всех элементов, полученных в результате применения функции преобразования к каждому элементу и его индексу в исходной коллекции.
Платформа и требования к версии: Common (1.4)
inline fun <T, R, C : MutableCollection<in R>> Iterable<T>.flatMapIndexedTo(destination: C, transform: (index: Int, T) -> Iterable<R>): C
inline fun <T, R, C : MutableCollection<in R>> Iterable<T>.flatMapIndexedTo(destination: C, transform: (index: Int, T) -> Sequence<R>): C
Добавляет в заданный список назначения все элементы, полученные в результате применения функции преобразования к каждому элементу и его индексу в исходной коллекции.
Платформа и требования к версии: Common (1.0)
inline fun <T, R, C : MutableCollection<in R>> Iterable<T>.flatMapTo(destination: C, transform: (T) -> Iterable<R>): C
Добавляет в заданный список назначения все элементы, полученные в результате применения функции преобразования к каждому элементу исходной коллекции.
inline fun <T, R, C : MutableCollection<in R>> Iterable<T>.flatMapTo(destination: C, transform: (T) -> Sequence<R>): C
Добавляет в заданный список назначения все элементы, полученные в результате применения функции преобразования к каждому элементу исходной коллекции.
Платформа и требования к версии: Common (1.0)
inline fun <T, R> Iterable<T>.foldIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): R
Вычисляет накопленное значение, начиная с начального значения и применяя операцию слева направо к текущему значению аккумулятора и каждому элементу с его индексом в исходной коллекции.
Платформа и требования к версии: Common (1.0)
inline fun <T, K> Iterable<T>.groupBy(keySelector: (T) -> K): Map<K, List<T>>
Группирует элементы исходной коллекции по ключу, возвращаемому функцией выбора ключа, применяемой к каждому элементу, и возвращает карту, в которой каждому ключу группы соответствует список элементов этой группы.
inline fun <T, K, V> Iterable<T>.groupBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map<K, List<V>>
Группирует значения, возвращаемые функцией преобразования значений, применяемой к каждому элементу исходной коллекции, по ключу, возвращаемому функцией выбора ключа, применяемой к элементу, и возвращает карту, в которой каждому ключу группы соответствует список соответствующих значений.
Платформа и требования к версии: Common (1.0)
inline fun <T, K, M : MutableMap<in K, MutableList<T>>> Iterable<T>.groupByTo(destination: M, keySelector: (T) -> K): M
Группирует элементы исходной коллекции по ключу, возвращаемому функцией выбора ключа, применяемой к каждому элементу, и помещает в карту назначения каждый ключ группы, связанный со списком соответствующих элементов.
inline fun <T, K, V, M : MutableMap<in K, MutableList<V>>> Iterable<T>.groupByTo(destination: M, keySelector: (T) -> K, valueTransform: (T) -> V): M
Группирует значения, возвращаемые функцией преобразования значений, применяемой к каждому элементу исходной коллекции, по ключу, возвращаемому функцией выбора ключа, применяемой к элементу, и помещает в карту назначения каждый ключ группы, связанный со списком соответствующих значений.
Платформа и требования к версии: Common (1.1)
inline fun <T, K> Iterable<T>.groupingBy(crossinline keySelector: (T) -> K): Grouping<T, K>
Создаёт источник Grouping из коллекции для последующего использования с одной из операций группировки и свёртки, применяя указанную функцию выбора ключа для извлечения ключа из каждого элемента.
Платформа и требования к версии: Common (1.0)
expect open override fun isEmpty(): Boolean
Возвращает true, если коллекция пуста (не содержит элементов), и false в противном случае.
Платформа и требования к версии: JS (1.1)
actual open override fun isEmpty(): Boolean
Возвращает true, если коллекция пуста (не содержит элементов), и false в противном случае.
Платформа и требования к версии: Common (1.0)
inline fun <T> Collection<T>.isNotEmpty(): Boolean
Возвращает true, если коллекция не пуста.
Платформа и требования к версии: Common (1.3)
inline fun <T> Collection<T>?.isNullOrEmpty(): Boolean
Возвращает true, если эта nullable-коллекция равна null или пуста.
Платформа и требования к версии: Common (2.4)
inline fun <T, R : Comparable<R>> Iterable<T>.isSortedBy(selector: (T) -> R?): Boolean
Платформа и требования к версии: Common (2.4)
inline fun <T, R : Comparable<R>> Iterable<T>.isSortedByDescending(selector: (T) -> R?): Boolean
Платформа и требования к версии: Common (2.4)
fun <T : Comparable<T>> Iterable<T>.isSortedDescending(): Boolean
Возвращает true, если каждый элемент коллекции больше или равен следующему элементу согласно естественному порядку сортировки.
Платформа и требования к версии: Common (2.4)
fun <T> Iterable<T>.isSortedWith(comparator: Comparator<in T>): Boolean
Возвращает true, если каждый элемент коллекции меньше или равен следующему элементу согласно заданному компаратору.
Платформа и требования к версии: Common (1.0)
expect open operator override fun iterator(): MutableIterator<E>
Возвращает итератор по элементам этого объекта.
Платформа и требования к версии: JS (1.1)
actual open operator override fun iterator(): MutableIterator<E>
Возвращает итератор по элементам этого объекта.
Платформа и требования к версии: Common (1.0)
fun <T, A : Appendable> Iterable<T>.joinTo(buffer: A, separator: CharSequence = ", ", prefix: CharSequence = "", postfix: CharSequence = "", limit: Int = -1, truncated: CharSequence = "...", transform: (T) -> CharSequence? = null): A
Добавляет строки всех элементов, разделённые с помощью разделителя, и использует заданные префикс и суффикс, если они указаны.
Платформа и требования к версии: Common (1.0)
fun <T> Iterable<T>.joinToString(separator: CharSequence = ", ", prefix: CharSequence = "", postfix: CharSequence = "", limit: Int = -1, truncated: CharSequence = "...", transform: (T) -> CharSequence? = null): String
Создаёт строку из всех элементов, разделённых с помощью разделителя, и использует заданные префикс и суффикс, если они указаны.
Платформа и требования к версии: Common (1.0)
fun <T> Iterable<T>.lastOrNull(): T?
Возвращает последний элемент или null, если коллекция пуста.
inline fun <T> Iterable<T>.lastOrNull(predicate: (T) -> Boolean): T?
Возвращает последний элемент, соответствующий заданному предикату, или null, если такой элемент не найден.
Платформа и требования к версии: Common (1.0)
inline fun <T, R : Any, C : MutableCollection<in R>> Iterable<T>.mapIndexedNotNullTo(destination: C, transform: (index: Int, T) -> R?): C
Применяет заданную функцию преобразования к каждому элементу и его индексу в исходной коллекции и добавляет только ненулевые результаты в заданный список назначения.
Платформа и требования к версии: Common (1.0)
inline fun <T, R, C : MutableCollection<in R>> Iterable<T>.mapIndexedTo(destination: C, transform: (index: Int, T) -> R): C
Применяет заданную функцию преобразования к каждому элементу и его индексу в исходной коллекции и добавляет результаты в заданный список назначения.
Платформа и требования к версии: Common (1.0)
inline fun <T, R : Any, C : MutableCollection<in R>> Iterable<T>.mapNotNullTo(destination: C, transform: (T) -> R?): C
Применяет заданную функцию преобразования к каждому элементу исходной коллекции и добавляет только ненулевые результаты в заданный список назначения.
Платформа и требования к версии: Common (1.0)
inline fun <T, R, C : MutableCollection<in R>> Iterable<T>.mapTo(destination: C, transform: (T) -> R): C
Применяет заданную функцию преобразования к каждому элементу исходной коллекции и добавляет результаты в заданный список назначения.
Требования к платформе и версии: Common (1.7)
fun <T : Comparable<T>> Iterable<T>.max(): T
fun Iterable<Double>.max(): Double
fun Iterable<Float>.max(): Float
Возвращает наибольший элемент.
Требования к платформе и версии: JVM (1.0)
fun <T : Comparable<T>> Iterable<T>.max(): T?
fun Iterable<Double>.max(): Double?
fun Iterable<Float>.max(): Float?
Требования к платформе и версии: Common (1.7)
inline fun <T, R : Comparable<R>> Iterable<T>.maxBy(selector: (T) -> R): T
Возвращает первый элемент, для которого функция selector возвращает наибольшее значение.
Требования к платформе и версии: JVM (1.0)
inline fun <T, R : Comparable<R>> Iterable<T>.maxBy(selector: (T) -> R): T?
Требования к платформе и версии: Common (1.4)
inline fun <T, R : Comparable<R>> Iterable<T>.maxOf(selector: (T) -> R): R
inline fun <T> Iterable<T>.maxOf(selector: (T) -> Double): Double
inline fun <T> Iterable<T>.maxOf(selector: (T) -> Float): Float
Возвращает наибольшее значение среди всех значений, полученных функцией selector, применённой к каждому элементу коллекции.
Требования к платформе и версии: Common (1.4)
inline fun <T, R : Comparable<R>> Iterable<T>.maxOfOrNull(selector: (T) -> R): R?
inline fun <T> Iterable<T>.maxOfOrNull(selector: (T) -> Double): Double?
inline fun <T> Iterable<T>.maxOfOrNull(selector: (T) -> Float): Float?
Возвращает наибольшее значение среди всех значений, полученных функцией selector, применённой к каждому элементу коллекции, или null, если коллекция пуста.
Требования к платформе и версии: Common (1.4)
inline fun <T, R> Iterable<T>.maxOfWithOrNull(comparator: Comparator<in R>, selector: (T) -> R): R?
Возвращает наибольшее значение согласно заданному comparator среди всех значений, полученных функцией selector, применённой к каждому элементу коллекции, или null, если коллекция пуста.
Требования к платформе и версии: Common (1.7)
fun <T> Iterable<T>.maxWith(comparator: Comparator<in T>): T
Возвращает первый элемент с наибольшим значением согласно заданному comparator.
Требования к платформе и версии: JVM (1.0)
fun <T> Iterable<T>.maxWith(comparator: Comparator<in T>): T?
Требования к платформе и версии: Common (1.4)
fun <T> Iterable<T>.maxWithOrNull(comparator: Comparator<in T>): T?
Возвращает первый элемент с наибольшим значением согласно заданному comparator или null, если элементов нет.
Требования к платформе и версии: Common (1.7)
fun <T : Comparable<T>> Iterable<T>.min(): T
fun Iterable<Double>.min(): Double
fun Iterable<Float>.min(): Float
Возвращает наименьший элемент.
Требования к платформе и версии: JVM (1.0)
fun <T : Comparable<T>> Iterable<T>.min(): T?
fun Iterable<Double>.min(): Double?
fun Iterable<Float>.min(): Float?
Требования к платформе и версии: Common (1.7)
inline fun <T, R : Comparable<R>> Iterable<T>.minBy(selector: (T) -> R): T
Возвращает первый элемент, для которого функция selector возвращает наименьшее значение.
Требования к платформе и версии: JVM (1.0)
inline fun <T, R : Comparable<R>> Iterable<T>.minBy(selector: (T) -> R): T?
Требования к платформе и версии: Common (1.4)
inline fun <T, R : Comparable<R>> Iterable<T>.minOf(selector: (T) -> R): R
inline fun <T> Iterable<T>.minOf(selector: (T) -> Double): Double
inline fun <T> Iterable<T>.minOf(selector: (T) -> Float): Float
Возвращает наименьшее значение среди всех значений, полученных функцией selector, применённой к каждому элементу коллекции.
Требования к платформе и версии: Common (1.4)
inline fun <T, R : Comparable<R>> Iterable<T>.minOfOrNull(selector: (T) -> R): R?
inline fun <T> Iterable<T>.minOfOrNull(selector: (T) -> Double): Double?
inline fun <T> Iterable<T>.minOfOrNull(selector: (T) -> Float): Float?
Возвращает наименьшее значение среди всех значений, полученных функцией selector, применённой к каждому элементу коллекции, или null, если коллекция пуста.
Требования к платформе и версии: Common (1.4)
inline fun <T, R> Iterable<T>.minOfWithOrNull(comparator: Comparator<in R>, selector: (T) -> R): R?
Возвращает наименьшее значение согласно заданному comparator среди всех значений, полученных функцией selector, применённой к каждому элементу коллекции, или null, если коллекция пуста.
Требования к платформе и версии: Common (1.0)
operator fun <T> Iterable<T>.minus(element: T): List<T>
Возвращает список, содержащий все элементы исходной коллекции, кроме первого вхождения заданного element.
operator fun <T> Iterable<T>.minus(elements: Array<out T>): List<T>
Возвращает список, содержащий все элементы исходной коллекции, кроме элементов, входящих в заданный массив elements.
operator fun <T> Iterable<T>.minus(elements: Iterable<T>): List<T>
Возвращает список, содержащий все элементы исходной коллекции, кроме элементов, входящих в заданную коллекцию elements.
operator fun <T> Iterable<T>.minus(elements: Sequence<T>): List<T>
Возвращает список, содержащий все элементы исходной коллекции, кроме элементов, входящих в заданную последовательность elements.
operator fun <T> Set<T>.minus(element: T): Set<T>
Возвращает множество, содержащее все элементы исходного множества, кроме заданного element.
operator fun <T> Set<T>.minus(elements: Array<out T>): Set<T>
Возвращает множество, содержащее все элементы исходного множества, кроме элементов, входящих в заданный массив elements.
operator fun <T> Set<T>.minus(elements: Iterable<T>): Set<T>
Возвращает множество, содержащее все элементы исходного множества, кроме элементов, входящих в заданную коллекцию elements.
operator fun <T> Set<T>.minus(elements: Sequence<T>): Set<T>
Возвращает множество, содержащее все элементы исходного множества, кроме элементов, входящих в заданную последовательность elements.
Требования к платформе и версии: Common (1.0)
inline operator fun <T> MutableCollection<in T>.minusAssign(element: T)
Удаляет один экземпляр указанного element из этой изменяемой коллекции.
inline operator fun <T> MutableCollection<in T>.minusAssign(elements: Array<T>)
Удаляет из этой изменяемой коллекции все элементы, входящие в заданный массив elements.
inline operator fun <T> MutableCollection<in T>.minusAssign(elements: Iterable<T>)
Удаляет из этой изменяемой коллекции все элементы, входящие в заданную коллекцию elements.
inline operator fun <T> MutableCollection<in T>.minusAssign(elements: Sequence<T>)
Удаляет из этой изменяемой коллекции все элементы, входящие в заданную последовательность elements.
Требования к платформе и версии: Common (1.0)
inline fun <T> Iterable<T>.minusElement(element: T): List<T>
Возвращает список, содержащий все элементы исходной коллекции, кроме первого вхождения заданного element.
inline fun <T> Set<T>.minusElement(element: T): Set<T>
Возвращает множество, содержащее все элементы исходного множества, кроме заданного element.
Требования к платформе и версии: Common (1.7)
fun <T> Iterable<T>.minWith(comparator: Comparator<in T>): T
Возвращает первый элемент с наименьшим значением согласно заданному comparator.
Требования к платформе и версии: JVM (1.0)
fun <T> Iterable<T>.minWith(comparator: Comparator<in T>): T?
Требования к платформе и версии: Common (1.4)
fun <T> Iterable<T>.minWithOrNull(comparator: Comparator<in T>): T?
Возвращает первый элемент с наименьшим значением согласно заданному comparator или null, если элементов нет.
Требования к платформе и версии: Common (1.0)
inline fun <T> Collection<T>?.orEmpty(): Collection<T>
Возвращает эту коллекцию, если она не null, а в противном случае — пустой список.
inline fun <T> Set<T>?.orEmpty(): Set<T>
Возвращает это множество, если оно не null, а в противном случае — пустое множество.
Требования к платформе и версии: Common (1.0)
operator fun <T> Collection<T>.plus(element: T): List<T>
operator fun <T> Iterable<T>.plus(element: T): List<T>
Возвращает список, содержащий все элементы исходной коллекции, а затем заданный element.
operator fun <T> Collection<T>.plus(elements: Array<out T>): List<T>
operator fun <T> Iterable<T>.plus(elements: Array<out T>): List<T>
Возвращает список, содержащий все элементы исходной коллекции, а затем все элементы заданного массива elements.
operator fun <T> Collection<T>.plus(elements: Iterable<T>): List<T>
operator fun <T> Iterable<T>.plus(elements: Iterable<T>): List<T>
Возвращает список, содержащий все элементы исходной коллекции, а затем все элементы заданной коллекции elements.
operator fun <T> Collection<T>.plus(elements: Sequence<T>): List<T>
operator fun <T> Iterable<T>.plus(elements: Sequence<T>): List<T>
Возвращает список, содержащий все элементы исходной коллекции, а затем все элементы заданной последовательности elements.
operator fun <T> Set<T>.plus(element: T): Set<T>
Возвращает множество, содержащее все элементы исходного множества, а затем заданный element, если его ещё нет в этом множестве.
operator fun <T> Set<T>.plus(elements: Array<out T>): Set<T>
Возвращает множество, содержащее все элементы исходного множества и элементы заданного массива elements, которых ещё нет в этом множестве.
operator fun <T> Set<T>.plus(elements: Iterable<T>): Set<T>
Возвращает множество, содержащее все элементы исходного множества и элементы заданной коллекции elements, которых ещё нет в этом множестве. Возвращённое множество сохраняет порядок итерации элементов исходного множества.
operator fun <T> Set<T>.plus(elements: Sequence<T>): Set<T>
Возвращает множество, содержащее все элементы исходного множества и элементы заданной последовательности elements, которых ещё нет в этом множестве.
Требования к платформе и версии: Common (1.0)
inline operator fun <T> MutableCollection<in T>.plusAssign(element: T)
Добавляет указанный element в эту изменяемую коллекцию.
inline operator fun <T> MutableCollection<in T>.plusAssign(elements: Array<T>)
Добавляет все элементы заданного массива elements в эту изменяемую коллекцию.
inline operator fun <T> MutableCollection<in T>.plusAssign(elements: Iterable<T>)
Добавляет все элементы заданной коллекции elements в эту изменяемую коллекцию.
inline operator fun <T> MutableCollection<in T>.plusAssign(elements: Sequence<T>)
Добавляет все элементы заданной последовательности elements в эту изменяемую коллекцию.
Требования к платформе и версии: Common (1.0)
inline fun <T> Collection<T>.plusElement(element: T): List<T>
inline fun <T> Iterable<T>.plusElement(element: T): List<T>
Возвращает список, содержащий все элементы исходной коллекции, а затем заданный element.
inline fun <T> Set<T>.plusElement(element: T): Set<T>
Возвращает множество, содержащее все элементы исходного множества, а затем заданный element, если его ещё нет в этом множестве.
Требования к платформе и версии: Common (1.4)
inline fun <T> Collection<T>.randomOrNull(): T?
Возвращает случайный элемент этой коллекции или null, если коллекция пуста.
fun <T> Collection<T>.randomOrNull(random: Random): T?
Возвращает случайный элемент этой коллекции, используя указанный источник случайных чисел, или null, если коллекция пуста.
Требования к платформе и версии: Common (1.0)
inline fun <S, T : S> Iterable<T>.reduceIndexed(operation: (index: Int, acc: S, T) -> S): S
Вычисляет накопленное значение, начиная с первого элемента и применяя operation слева направо к текущему значению аккумулятора и каждому элементу с его индексом в исходной коллекции.
Требования к платформе и версии: Common (1.4)
inline fun <S, T : S> Iterable<T>.reduceIndexedOrNull(operation: (index: Int, acc: S, T) -> S): S?
Вычисляет накопленное значение, начиная с первого элемента и применяя operation слева направо к текущему значению аккумулятора и каждому элементу с его индексом в исходной коллекции.
Требования к платформе и версии: Common (1.0)
expect open override fun remove(element: E): Boolean
Удаляет один экземпляр указанного элемента из этой коллекции, если коллекция его содержит.
Требования к платформе и версии: JS (1.1)
actual open override fun remove(element: E): Boolean
Удаляет один экземпляр указанного элемента из этой коллекции, если коллекция его содержит.
Требования к платформе и версии: Common (1.0)
expect open override fun removeAll(elements: Collection<E>): Boolean
Удаляет из этой коллекции все элементы, которые также входят в указанную коллекцию.
Требования к платформе и версии: JS (1.1)
actual open override fun removeAll(elements: Collection<E>): Boolean
Удаляет из этой коллекции все элементы, которые также входят в указанную коллекцию.
Требования к платформе и версии: Common (1.0)
fun <T> MutableCollection<in T>.removeAll(elements: Array<out T>): Boolean
Удаляет из этой MutableCollection все элементы, которые содержатся также в указанном массиве elements.
inline fun <T> MutableCollection<out T>.removeAll(elements: Collection<T>): Boolean
Удаляет из этой коллекции все элементы, которые также содержатся в указанной коллекции.
fun <T> MutableCollection<in T>.removeAll(elements: Iterable<T>): Boolean
Удаляет из этой MutableCollection все элементы, которые содержатся также в указанной коллекции elements.
fun <T> MutableCollection<in T>.removeAll(elements: Sequence<T>): Boolean
Удаляет из этой MutableCollection все элементы, которые содержатся также в указанной последовательности elements.
fun <T> MutableIterable<T>.removeAll(predicate: (T) -> Boolean): Boolean
Удаляет из этой MutableIterable все элементы, соответствующие указанному predicate.
Требования к платформе и версии: Common (1.0)
fun <T : Any> Iterable<T?>.requireNoNulls(): Iterable<T>
Возвращает исходную коллекцию, содержащую все элементы, не являющиеся null, и выбрасывает IllegalArgumentException, если имеются элементы null.
Требования к платформе и версии: Common (1.0)
expect open override fun retainAll(elements: Collection<E>): Boolean
Оставляет в этой коллекции только те элементы, которые содержатся в указанной коллекции.
Требования к платформе и версии: JS (1.1)
actual open override fun retainAll(elements: Collection<E>): Boolean
Оставляет в этой коллекции только те элементы, которые содержатся в указанной коллекции.
Требования к платформе и версии: Common (1.0)
fun <T> MutableCollection<in T>.retainAll(elements: Array<out T>): Boolean
Оставляет в этой MutableCollection только элементы, содержащиеся в указанном массиве elements.
inline fun <T> MutableCollection<out T>.retainAll(elements: Collection<T>): Boolean
Оставляет в этой коллекции только те элементы, которые содержатся в указанной коллекции.
fun <T> MutableCollection<in T>.retainAll(elements: Iterable<T>): Boolean
Оставляет в этой MutableCollection только элементы, содержащиеся в указанной коллекции elements.
fun <T> MutableCollection<in T>.retainAll(elements: Sequence<T>): Boolean
Оставляет в этой MutableCollection только элементы, содержащиеся в указанной последовательности elements.
fun <T> MutableIterable<T>.retainAll(predicate: (T) -> Boolean): Boolean
Оставляет в этой MutableIterable только элементы, соответствующие указанному predicate.
Требования к платформе и версии: Common (1.4)
inline fun <S, T : S> Iterable<T>.runningReduce(operation: (acc: S, T) -> S): List<S>
Возвращает список последовательных значений накопления, полученных применением operation слева направо к каждому элементу и текущему значению аккумулятора, которое начинается с первого элемента этой коллекции.
Требования к платформе и версии: Common (1.4)
inline fun <S, T : S> Iterable<T>.runningReduceIndexed(operation: (index: Int, acc: S, T) -> S): List<S>
Возвращает список последовательных значений накопления, полученных применением operation слева направо к каждому элементу, его индексу в исходной коллекции и текущему значению аккумулятора, которое начинается с первого элемента этой коллекции.
Требования к платформе и версии: Common (1.2)
expect fun <T> Iterable<T>.shuffled(): List<T>
Возвращает новый список, в котором элементы этой коллекции перемешаны случайным образом.
fun <T> Iterable<T>.shuffled(random: Random): List<T>
Возвращает новый список, в котором элементы этого списка перемешаны случайным образом с использованием указанного экземпляра random в качестве источника случайности.
Требования к платформе и версии: JS (1.2), Native (1.3), Wasm-JS (1.8), Wasm-WASI (1.8)
actual fun <T> Iterable<T>.shuffled(): List<T>
Возвращает новый список, в котором элементы этой коллекции перемешаны случайным образом.
Требования к платформе и версии: JVM (1.2)
actual fun <T> Iterable<T>.shuffled(): List<T>
Возвращает новый список, в котором элементы этой коллекции перемешаны случайным образом.
fun <T> Iterable<T>.shuffled(random: Random): List<T>
Возвращает новый список, в котором элементы этого списка перемешаны случайным образом с использованием указанного экземпляра random в качестве источника случайности.
Требования к платформе и версии: Common (1.0)
fun <T> Iterable<T>.single(): T
Возвращает единственный элемент или выбрасывает исключение, если коллекция пуста или содержит более одного элемента.
inline fun <T> Iterable<T>.single(predicate: (T) -> Boolean): T
Возвращает единственный элемент, соответствующий указанному predicate, или выбрасывает исключение, если соответствующих элементов нет или их больше одного.
Требования к платформе и версии: Common (1.0)
fun <T> Iterable<T>.singleOrNull(): T?
Возвращает единственный элемент или null, если коллекция пуста или содержит более одного элемента.
inline fun <T> Iterable<T>.singleOrNull(predicate: (T) -> Boolean): T?
Возвращает единственный элемент, соответствующий указанному predicate, или null, если элемент не найден или найдено более одного элемента.
Требования к платформе и версии: Common (1.0)
fun <T : Comparable<T>> Iterable<T>.sortedDescending(): List<T>
Возвращает список всех элементов, отсортированных по убыванию в соответствии с их естественным порядком сортировки.
Требования к платформе и версии: Common (1.0)
fun <T> Iterable<T>.sortedWith(comparator: Comparator<in T>): List<T>
Возвращает список всех элементов, отсортированных с использованием указанного comparator.
Требования к платформе и версии: Common (1.0)
fun Iterable<Byte>.sum(): Int
fun Iterable<Double>.sum(): Double
fun Iterable<Float>.sum(): Float
fun Iterable<Int>.sum(): Int
fun Iterable<Long>.sum(): Long
fun Iterable<Short>.sum(): Int
Возвращает сумму всех элементов коллекции.
fun Iterable<UByte>.sum(): UInt
fun Iterable<UInt>.sum(): UInt
fun Iterable<ULong>.sum(): ULong
fun Iterable<UShort>.sum(): UInt
Возвращает сумму всех элементов коллекции.
Требования к платформе и версии: Common (1.4)
inline fun <T> Iterable<T>.sumOf(selector: (T) -> Double): Double
inline fun <T> Iterable<T>.sumOf(selector: (T) -> Int): Int
inline fun <T> Iterable<T>.sumOf(selector: (T) -> Long): Long
Возвращает сумму всех значений, полученных функцией selector, применённой к каждому элементу коллекции.
inline fun <T> Iterable<T>.sumOf(selector: (T) -> UInt): UInt
inline fun <T> Iterable<T>.sumOf(selector: (T) -> ULong): ULong
Возвращает сумму всех значений, полученных функцией selector, применённой к каждому элементу коллекции.
Требования к платформе и версии: JVM (1.4)
inline fun <T> Iterable<T>.sumOf(selector: (T) -> BigDecimal): BigDecimal
inline fun <T> Iterable<T>.sumOf(selector: (T) -> BigInteger): BigInteger
Возвращает сумму всех значений, полученных функцией selector, применённой к каждому элементу коллекции.
Требования к платформе и версии: JS (1.1)
protected open fun toArray(): Array<Any?>
Возвращает новый массив типа Array<Any?> с элементами этой коллекции.
protected open fun <T> toArray(array: Array<T>): Array<T>
Заполняет предоставленный array или создаёт новый массив того же типа и заполняет его элементами этой коллекции.
Требования к платформе и версии: Common (1.0)
fun Collection<Boolean>.toBooleanArray(): BooleanArray
Возвращает массив Boolean, содержащий все элементы этой коллекции.
Требования к платформе и версии: Common (1.0)
fun Collection<Byte>.toByteArray(): ByteArray
Возвращает массив Byte, содержащий все элементы этой коллекции.
Требования к платформе и версии: Common (1.0)
fun Collection<Char>.toCharArray(): CharArray
Возвращает массив Char, содержащий все элементы этой коллекции.
Требования к платформе и версии: Common (1.0)
fun <T, C : MutableCollection<in T>> Iterable<T>.toCollection(destination: C): C
Добавляет все элементы в указанную коллекцию destination.
Требования к платформе и версии: Common (1.0)
fun Collection<Double>.toDoubleArray(): DoubleArray
Возвращает массив Double, содержащий все элементы этой коллекции.
Требования к платформе и версии: Common (1.0)
fun Collection<Float>.toFloatArray(): FloatArray
Возвращает массив Float, содержащий все элементы этой коллекции.
Требования к платформе и версии: Common (1.0)
fun Collection<Int>.toIntArray(): IntArray
Возвращает массив Int, содержащий все элементы этой коллекции.
Требования к платформе и версии: Common (1.0)
fun Collection<Long>.toLongArray(): LongArray
Возвращает массив Long, содержащий все элементы этой коллекции.
Требования к платформе и версии: Common (1.0)
fun <K, V> Iterable<Pair<K, V>>.toMap(): Map<K, V>
Возвращает новую карту, содержащую все пары ключ-значение из указанной коллекции пар.
fun <K, V, M : MutableMap<in K, in V>> Iterable<Pair<K, V>>.toMap(destination: M): M
Заполняет изменяемую карту destination парами ключ-значение из указанной коллекции пар и возвращает её.
Требования к платформе и версии: Common (1.0)
fun <T> Collection<T>.toMutableList(): MutableList<T>
fun <T> Iterable<T>.toMutableList(): MutableList<T>
Возвращает новый MutableList, заполненный всеми элементами этой коллекции.
Требования к платформе и версии: Common (1.0)
fun <T> Iterable<T>.toMutableSet(): MutableSet<T>
Возвращает новый MutableSet, содержащий все уникальные элементы указанной коллекции.
Требования к платформе и версии: Common (1.0)
fun Collection<Short>.toShortArray(): ShortArray
Возвращает массив Short, содержащий все элементы этой коллекции.
Требования к платформе и версии: JVM (1.0)
fun <T : Comparable<T>> Iterable<T>.toSortedSet(): SortedSet<T>
fun <T> Iterable<T>.toSortedSet(comparator: Comparator<in T>): SortedSet<T>
Возвращает новый SortedSet со всеми элементами.
Платформы и требования к версии: Common (1.0), JS (1.1), JVM (1.0), Native (1.3), Wasm-JS (1.8), Wasm-WASI (1.8)
expect inline fun <T> Collection<T>.toTypedArray(): Array<T>
Возвращает типизированный массив, содержащий все элементы этой коллекции.
Платформы и требования к версии: Common (1.3)
fun Collection<UByte>.toUByteArray(): UByteArray
Возвращает массив UByte, содержащий все элементы этой коллекции.
Платформы и требования к версии: Common (1.3)
fun Collection<UInt>.toUIntArray(): UIntArray
Возвращает массив UInt, содержащий все элементы этой коллекции.
Платформы и требования к версии: Common (1.3)
fun Collection<ULong>.toULongArray(): ULongArray
Возвращает массив ULong, содержащий все элементы этой коллекции.
Платформы и требования к версии: Common (1.3)
fun Collection<UShort>.toUShortArray(): UShortArray
Возвращает массив UShort, содержащий все элементы этой коллекции.
Платформы и требования к версии: Native (1.3)
fun <T> Collection<Future<T>>.waitForMultipleFutures(millis: Int): Set<Future<T>>
Платформы и требования к версии: Common (1.2)
fun <T> Iterable<T>.windowed(size: Int, step: Int = 1, partialWindows: Boolean = false): List<List<T>>
Возвращает список снимков окна заданного size, скользящего по этой коллекции с заданным step, где каждый снимок представляет собой список.
fun <T, R> Iterable<T>.windowed(size: Int, step: Int = 1, partialWindows: Boolean = false, transform: (List<T>) -> R): List<R>
Платформы и требования к версии: Common (1.0)
fun <T> Iterable<T>.withIndex(): Iterable<IndexedValue<T>>
Возвращает ленивый Iterable, который оборачивает каждый элемент исходной коллекции в IndexedValue, содержащий индекс этого элемента и сам элемент.
Платформы и требования к версии: Common (1.0)
infix fun <T, R> Iterable<T>.zip(other: Array<out R>): List<Pair<T, R>>
Возвращает список пар, составленных из элементов коллекции this и массива other с тем же индексом. Длина возвращаемого списка равна длине более короткой коллекции.
infix fun <T, R> Iterable<T>.zip(other: Iterable<R>): List<Pair<T, R>>
Возвращает список пар, составленных из элементов коллекции this и коллекции other с тем же индексом. Длина возвращаемого списка равна длине более короткой коллекции.
inline fun <T, R, V> Iterable<T>.zip(other: Array<out R>, transform: (a: T, b: R) -> V): List<V>
Возвращает список значений, составленных из элементов коллекции this и массива other с тем же индексом с помощью функции transform, применяемой к каждой паре элементов. Длина возвращаемого списка равна длине более короткой коллекции.
inline fun <T, R, V> Iterable<T>.zip(other: Iterable<R>, transform: (a: T, b: R) -> V): List<V>
Платформы и требования к версии: Common (1.2)
fun <T> Iterable<T>.zipWithNext(): List<Pair<T, T>>
Возвращает список пар из каждых двух соседних элементов этой коллекции.
inline fun <T, R> Iterable<T>.zipWithNext(transform: (a: T, b: T) -> R): List<R>
Возвращает список, содержащий результаты применения заданной функции transform к каждой паре соседних элементов этой коллекции.
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-linked-hash-set/