Hash Map
Требования к платформе и версии: Common (1.0)
expect class HashMap<K, V> : MutableMap<K, V>
Реализация MutableMap на основе хеш-таблицы.
Этот класс хранит пары ключ-значение с помощью структуры данных «хеш-таблица», обеспечивающей быстрый поиск по ключам. Он полностью реализует контракт MutableMap, предоставляя все стандартные операции с отображением, включая добавление, удаление и поиск значений по ключу.
Ключи и значения null
HashMap принимает null в качестве ключа. Поскольку ключи уникальны, в отображении может существовать не более одной записи с ключом null. HashMap также принимает null в качестве значения, и несколько записей могут иметь значения null.
Контракты хеш-кода и равенства ключей
HashMap использует функции Any.hashCode и Any.equals ключей для организации записей и поиска по ним. Ключи считаются равными, если функция Any.equals возвращает true, а равные ключи должны иметь одинаковое значение Any.hashCode. Нарушение этого контракта может привести к неправильному поведению.
Функции Any.hashCode и Any.equals должны быть согласованными и неизменными на протяжении всего времени существования объектов-ключей. Изменение объекта-ключа, влияющее на его хеш-код или равенство после его использования в качестве ключа в HashMap, может привести к тому, что запись станет недоступной.
Характеристики производительности
Приведённые ниже характеристики производительности предполагают, что функция Any.hashCode ключей равномерно распределяет их по хеш-таблице, сводя к минимуму коллизии. Неудачная хеш-функция, вызывающая множество коллизий, может снизить производительность.
HashMap обеспечивает эффективную реализацию распространённых операций:
Поиск (get, containsKey): время O(1)
Поиск значения (containsValue): время O(n), требует просмотра всех записей
Порядок итерации
HashMap не гарантирует определённый порядок итерации по ключам, значениям или записям. Порядок итерации непредсказуем и может измениться при перехешировании отображения (когда записи добавляются или удаляются и внутренняя ёмкость корректируется). Не полагайтесь на какой-либо определённый порядок итерации.
Если необходим предсказуемый порядок итерации, рассмотрите возможность использования LinkedHashMap, которая сохраняет порядок добавления элементов.
Рекомендации по использованию
HashMap использует внутреннюю структуру данных с конечной ёмкостью — максимальным количеством записей, которое она может хранить до необходимости увеличения. По мере добавления записей отображение отслеживает коэффициент загрузки — отношение количества записей к текущей ёмкости. Когда это отношение превышает определённый порог, отображение автоматически увеличивает ёмкость и выполняет перехеширование — перестраивает внутреннюю структуру данных, чтобы перераспределить записи. Перехеширование — относительно затратная операция, временно снижающая производительность. При создании HashMap можно дополнительно указать начальную ёмкость и порог коэффициента загрузки. Обратите внимание, что эти параметры являются лишь рекомендациями для реализации и могут быть проигнорированы.
Для оптимизации производительности и использования памяти:
Если количество записей известно заранее, используйте конструктор с начальной ёмкостью, чтобы избежать многократного перехеширования при росте отображения.
Выбирайте подходящий коэффициент загрузки при создании отображения. Более низкий коэффициент загрузки уменьшает вероятность коллизий, но требует больше памяти, а более высокий экономит память, но может увеличить время поиска. Коэффициент загрузки по умолчанию обычно обеспечивает хороший баланс.
Убедитесь, что реализации Any.hashCode объектов-ключей обеспечивают хорошее распределение, чтобы свести к минимуму коллизии и сохранить высокую производительность.
При добавлении нескольких записей предпочитайте putAll нескольким отдельным вызовам put.
Потокобезопасность
HashMap не является потокобезопасной. Если несколько потоков одновременно обращаются к экземпляру и хотя бы один из них изменяет его, требуется внешняя синхронизация.
Параметры типа
тип ключей отображения. Тип ключа отображения инвариантен.
тип значений отображения. Тип значения изменяемого отображения инвариантен.
Требования к платформе и версии: JS (1.1)
actual open class HashMap<K, V> : AbstractMutableMap<K, V> , MutableMap<K, V>
Реализация MutableMap на основе хеш-таблицы.
Этот класс хранит пары ключ-значение с помощью структуры данных «хеш-таблица», обеспечивающей быстрый поиск по ключам. Он полностью реализует контракт MutableMap, предоставляя все стандартные операции с отображением, включая добавление, удаление и поиск значений по ключу.
Ключи и значения null
HashMap принимает null в качестве ключа. Поскольку ключи уникальны, в отображении может существовать не более одной записи с ключом null. HashMap также принимает null в качестве значения, и несколько записей могут иметь значения null.
Контракты хеш-кода и равенства ключей
HashMap использует функции Any.hashCode и Any.equals ключей для организации записей и поиска по ним. Ключи считаются равными, если функция Any.equals возвращает true, а равные ключи должны иметь одинаковое значение Any.hashCode. Нарушение этого контракта может привести к неправильному поведению.
Функции Any.hashCode и Any.equals должны быть согласованными и неизменными на протяжении всего времени существования объектов-ключей. Изменение объекта-ключа, влияющее на его хеш-код или равенство после его использования в качестве ключа в HashMap, может привести к тому, что запись станет недоступной.
Характеристики производительности
Приведённые ниже характеристики производительности предполагают, что функция Any.hashCode ключей равномерно распределяет их по хеш-таблице, сводя к минимуму коллизии. Неудачная хеш-функция, вызывающая множество коллизий, может снизить производительность.
HashMap обеспечивает эффективную реализацию распространённых операций:
Поиск (get, containsKey): время O(1)
Поиск значения (containsValue): время O(n), требует просмотра всех записей
Порядок итерации
HashMap не гарантирует определённый порядок итерации по ключам, значениям или записям. Порядок итерации непредсказуем и может измениться при перехешировании отображения (когда записи добавляются или удаляются и внутренняя ёмкость корректируется). Не полагайтесь на какой-либо определённый порядок итерации.
Если необходим предсказуемый порядок итерации, рассмотрите возможность использования LinkedHashMap, которая сохраняет порядок добавления элементов.
Рекомендации по использованию
HashMap использует внутреннюю структуру данных с конечной ёмкостью — максимальным количеством записей, которое она может хранить до необходимости увеличения. Когда отображение заполняется, оно автоматически увеличивает ёмкость и выполняет перехеширование — перестраивает внутреннюю структуру данных, чтобы перераспределить записи. Перехеширование — относительно затратная операция, временно снижающая производительность. При создании HashMap можно дополнительно указать начальную ёмкость, которая будет использоваться для определения размера внутренней структуры данных и потенциально поможет избежать перехеширования при росте отображения.
Для оптимизации производительности и использования памяти:
Если количество записей известно заранее, используйте конструктор с начальной ёмкостью, чтобы избежать многократного перехеширования при росте отображения.
Убедитесь, что реализации Any.hashCode объектов-ключей обеспечивают хорошее распределение, чтобы свести к минимуму коллизии и сохранить высокую производительность.
При добавлении нескольких записей предпочитайте putAll нескольким отдельным вызовам put.
Потокобезопасность
HashMap не является потокобезопасной. Если несколько потоков одновременно обращаются к экземпляру и хотя бы один из них изменяет его, требуется внешняя синхронизация.
Параметры типа
тип ключей отображения. Тип ключа отображения инвариантен.
тип значений отображения. Тип значения изменяемого отображения инвариантен.
Наследники
Требования к платформе и версии: JVM (1.1)
actual typealias HashMap<K, V> = java.util.HashMap<K, V>
Реализация MutableMap на основе хеш-таблицы.
Этот класс хранит пары ключ-значение с помощью структуры данных «хеш-таблица», обеспечивающей быстрый поиск по ключам. Он полностью реализует контракт MutableMap, предоставляя все стандартные операции с отображением, включая добавление, удаление и поиск значений по ключу.
Ключи и значения null
HashMap принимает null в качестве ключа. Поскольку ключи уникальны, в отображении может существовать не более одной записи с ключом null. HashMap также принимает null в качестве значения, и несколько записей могут иметь значения null.
Контракты хеш-кода и равенства ключей
HashMap использует функции Any.hashCode и Any.equals ключей для организации записей и поиска по ним. Ключи считаются равными, если функция Any.equals возвращает true, а равные ключи должны иметь одинаковое значение Any.hashCode. Нарушение этого контракта может привести к неправильному поведению.
Функции Any.hashCode и Any.equals должны быть согласованными и неизменными на протяжении всего времени существования объектов-ключей. Изменение объекта-ключа, влияющее на его хеш-код или равенство после его использования в качестве ключа в HashMap, может привести к тому, что запись станет недоступной.
Характеристики производительности
Приведённые ниже характеристики производительности предполагают, что функция Any.hashCode ключей равномерно распределяет их по хеш-таблице, сводя к минимуму коллизии. Неудачная хеш-функция, вызывающая множество коллизий, может снизить производительность.
HashMap обеспечивает эффективную реализацию распространённых операций:
Поиск (get, containsKey): время O(1)
Добавление и удаление (put, remove): время O(1)
Поиск значения (containsValue): время O(n), требует просмотра всех записей
Итерация (entries, keys, values): время O(n)
Порядок итерации
HashMap не гарантирует определённый порядок итерации по ключам, значениям или записям. Порядок итерации непредсказуем и может измениться при перехешировании отображения (когда записи добавляются или удаляются и внутренняя ёмкость корректируется). Не полагайтесь на какой-либо определённый порядок итерации.
Если необходим предсказуемый порядок итерации, рассмотрите возможность использования LinkedHashMap, которая сохраняет порядок добавления элементов.
Рекомендации по использованию
HashMap использует внутреннюю структуру данных с конечной ёмкостью — максимальным количеством записей, которое она может хранить до необходимости увеличения. По мере добавления записей отображение отслеживает коэффициент загрузки — отношение количества записей к текущей ёмкости. Когда это отношение превышает определённый порог, отображение автоматически увеличивает ёмкость и выполняет перехеширование — перестраивает внутреннюю структуру данных, чтобы перераспределить записи. Перехеширование — относительно затратная операция, временно снижающая производительность. При создании HashMap можно дополнительно указать начальную ёмкость и порог коэффициента загрузки.
Для оптимизации производительности и использования памяти:
Если количество записей известно заранее, используйте конструктор с начальной ёмкостью, чтобы избежать многократного перехеширования при росте отображения.
Выбирайте подходящий коэффициент загрузки при создании отображения. Более низкий коэффициент загрузки уменьшает вероятность коллизий, но требует больше памяти, а более высокий экономит память, но может увеличить время поиска. Коэффициент загрузки по умолчанию обычно обеспечивает хороший баланс.
Убедитесь, что реализации Any.hashCode объектов-ключей обеспечивают хорошее распределение, чтобы свести к минимуму коллизии и сохранить высокую производительность.
При добавлении нескольких записей предпочитайте putAll нескольким отдельным вызовам put.
Потокобезопасность
HashMap не является потокобезопасной. Если несколько потоков одновременно обращаются к экземпляру и хотя бы один из них изменяет его, требуется внешняя синхронизация.
Параметры типа
тип ключей отображения. Тип ключа отображения инвариантен.
тип значений отображения. Тип значения изменяемого отображения инвариантен.
Требования к платформе и версии: Native (1.3), Wasm-JS (1.8), Wasm-WASI (1.8)
actual class HashMap<K, V> : MutableMap<K, V>
Реализация MutableMap на основе хеш-таблицы.
Этот класс хранит пары ключ-значение с помощью структуры данных «хеш-таблица», обеспечивающей быстрый поиск по ключам. Он полностью реализует контракт MutableMap, предоставляя все стандартные операции с отображением, включая добавление, удаление и поиск значений по ключу.
Ключи и значения null
HashMap принимает null в качестве ключа. Поскольку ключи уникальны, в отображении может существовать не более одной записи с ключом null. HashMap также принимает null в качестве значения, и несколько записей могут иметь значения null.
Контракты хеш-кода и равенства ключей
HashMap использует функции Any.hashCode и Any.equals ключей для организации записей и поиска по ним. Ключи считаются равными, если функция Any.equals возвращает true, а равные ключи должны иметь одинаковое значение Any.hashCode. Нарушение этого контракта может привести к неправильному поведению.
Функции Any.hashCode и Any.equals должны быть согласованными и неизменными на протяжении всего времени существования объектов-ключей. Изменение объекта-ключа, влияющее на его хеш-код или равенство после его использования в качестве ключа в HashMap, может привести к тому, что запись станет недоступной.
Характеристики производительности
Приведённые ниже характеристики производительности предполагают, что функция Any.hashCode ключей равномерно распределяет их по хеш-таблице, сводя к минимуму коллизии. Неудачная хеш-функция, вызывающая множество коллизий, может снизить производительность.
HashMap обеспечивает эффективную реализацию распространённых операций:
Поиск (get, containsKey): время O(1)
Поиск значения (containsValue): время O(n), требует просмотра всех записей
Порядок итерации
HashMap не гарантирует определённый порядок итерации по ключам, значениям или записям. Порядок итерации непредсказуем и может измениться при перехешировании отображения (когда записи добавляются или удаляются и внутренняя ёмкость корректируется). Не полагайтесь на какой-либо определённый порядок итерации.
Если необходим предсказуемый порядок итерации, рассмотрите возможность использования LinkedHashMap, которая сохраняет порядок добавления элементов.
Рекомендации по использованию
HashMap использует внутреннюю структуру данных с конечной ёмкостью — максимальным количеством записей, которое она может хранить до необходимости увеличения. Когда отображение заполняется, оно автоматически увеличивает ёмкость и выполняет перехеширование — перестраивает внутреннюю структуру данных, чтобы перераспределить записи. Перехеширование — относительно затратная операция, временно снижающая производительность. При создании HashMap можно дополнительно указать начальную ёмкость, которая будет использоваться для определения размера внутренней структуры данных и потенциально поможет избежать перехеширования при росте отображения.
Для оптимизации производительности и использования памяти:
Если количество записей известно заранее, используйте конструктор с начальной ёмкостью, чтобы избежать многократного перехеширования при росте отображения.
Убедитесь, что реализации Any.hashCode объектов-ключей обеспечивают хорошее распределение, чтобы свести к минимуму коллизии и сохранить высокую производительность.
При добавлении нескольких записей предпочитайте putAll нескольким отдельным вызовам put.
Потокобезопасность
HashMap не является потокобезопасной. Если несколько потоков одновременно обращаются к экземпляру и хотя бы один из них изменяет его, требуется внешняя синхронизация.
Параметры типа
тип ключей отображения. Тип ключа отображения инвариантен.
тип значений отображения. Тип значения изменяемого отображения инвариантен.
Конструкторы
Требования к платформе и версии: Common, JS, Native, Wasm-JS, Wasm-WASI
expect constructor()
Создаёт новое пустое отображение HashMap.
expect constructor(initialCapacity: Int)
Создаёт новое пустое отображение HashMap с указанной начальной ёмкостью.
expect constructor(initialCapacity: Int, loadFactor: Float)
Создаёт новое пустое отображение HashMap с указанными начальной ёмкостью и коэффициентом загрузки.
expect constructor(original: Map<out K, V>)
Свойства
Требования к платформе и версии: Common (1.0), JS (1.1), Native (1.3), Wasm-JS (1.8), Wasm-WASI (1.8)
expect open override val entries: MutableSet<MutableMap.MutableEntry<K, V>>
Возвращает MutableSet всех пар ключ-значение в этом отображении.
Требования к платформе и версии: Common (1.0), Native (1.3), Wasm-JS (1.8), Wasm-WASI (1.8)
expect open override val keys: MutableSet<K>
Возвращает MutableSet всех ключей этого отображения.
Требования к платформе и версии: JS (1.1)
actual open override val keys: MutableSet<K>
Возвращает доступный только для чтения Set всех ключей этого отображения.
Требования к платформе и версии: Common (1.0), Native (1.3), Wasm-JS (1.8), Wasm-WASI (1.8)
expect open override val values: MutableCollection<V>
Возвращает MutableCollection всех значений этого отображения. Обратите внимание, что эта коллекция может содержать повторяющиеся значения.
Требования к платформе и версии: JS (1.1)
actual open override val values: MutableCollection<V>
Возвращает доступную только для чтения Collection всех значений этого отображения.
Функции
Платформа и требования к версии: Common (1.0)
fun <K, V> Map<out K, V>.any(): Boolean
Возвращает true, если карта содержит хотя бы один элемент.
inline fun <K, V> Map<out K, V>.any(predicate: (Map.Entry<K, V>) -> Boolean): Boolean
Возвращает true, если хотя бы один элемент соответствует заданному предикату.
Платформа и требования к версии: JS (2.0)
open fun asJsMapView(): JsMap<K, V>
Возвращает представление с методами JsMap, позволяющее использовать его в JavaScript как обычную Map. Структурные изменения базовой карты синхронизируются с представлением, и наоборот.
Платформа и требования к версии: JS (2.0)
open fun asJsReadonlyMapView(): JsReadonlyMap<K, V>
Возвращает представление с методами JsReadonlyMap, позволяющее использовать его в JavaScript как обычную карту только для чтения. Структурные изменения базовой карты синхронизируются с представлением.
Платформа и требования к версии: Common (1.0), JS (1.1), Native (1.3), Wasm-JS (1.8), Wasm-WASI (1.8)
expect open override fun containsKey(key: K): Boolean
Возвращает true, если карта содержит указанный ключ.
Платформа и требования к версии: Common (1.0), JS (1.1), Native (1.3), Wasm-JS (1.8), Wasm-WASI (1.8)
expect open override fun containsValue(value: V): Boolean
Возвращает true, если карта сопоставляет одному или нескольким ключам указанное значение.
Платформа и требования к версии: JS (1.1)
open operator override fun equals(other: Any?): Boolean
Сравнивает эту карту с другим экземпляром на предмет упорядоченного структурного равенства.
Платформа и требования к версии: Native (1.3), Wasm-JS (1.8), Wasm-WASI (1.8)
open operator override fun equals(other: Any?): Boolean
Показывает, равен ли другой объект этому объекту.
Платформа и требования к версии: Common (1.5)
inline fun <K, V, R : Any> Map<out K, V>.firstNotNullOf(transform: (Map.Entry<K, V>) -> R?): R
Возвращает первое ненулевое значение, полученное при применении функции transform к элементам этой карты в порядке итерации, или выбрасывает NoSuchElementException, если ненулевое значение не получено.
Платформа и требования к версии: Common (1.5)
inline fun <K, V, R : Any> Map<out K, V>.firstNotNullOfOrNull(transform: (Map.Entry<K, V>) -> R?): R?
Возвращает первое ненулевое значение, полученное при применении функции transform к элементам этой карты в порядке итерации, или null, если ненулевое значение не получено.
Платформа и требования к версии: Common (1.0)
inline fun <K, V, R> Map<out K, V>.flatMap(transform: (Map.Entry<K, V>) -> Iterable<R>): List<R>
Возвращает единый список всех элементов, полученных в результате вызова функции transform для каждого элемента исходной карты.
inline fun <K, V, R> Map<out K, V>.flatMap(transform: (Map.Entry<K, V>) -> Sequence<R>): List<R>
Возвращает единый список всех элементов, полученных в результате вызова функции transform для каждого элемента исходной карты.
Платформа и требования к версии: Common (1.0)
inline fun <K, V, R, C : MutableCollection<in R>> Map<out K, V>.flatMapTo(destination: C, transform: (Map.Entry<K, V>) -> Iterable<R>): C
Добавляет все элементы, полученные в результате вызова функции transform для каждого элемента исходной карты, в указанное назначение.
inline fun <K, V, R, C : MutableCollection<in R>> Map<out K, V>.flatMapTo(destination: C, transform: (Map.Entry<K, V>) -> Sequence<R>): C
Добавляет все элементы, полученные в результате вызова функции transform для каждого элемента исходной карты, в указанное назначение.
Платформа и требования к версии: JVM (1.2)
inline fun <K, V> Map<out K, V>.getOrDefault(key: K, defaultValue: V): V
Возвращает значение, сопоставленное указанному ключу, или defaultValue, если в этой карте нет соответствия для ключа.
Платформа и требования к версии: Common (1.0)
inline fun <K, V> MutableMap<K, V>.getOrPut(key: K, defaultValue: () -> V): V
Возвращает значение для заданного ключа, если оно присутствует и не равно null. В противном случае вызывает функцию defaultValue, помещает ее результат в карту под заданным ключом и возвращает результат вызова.
Платформа и требования к версии: Common (2.4)
inline fun <K, V> MutableMap<K, V>.getOrPutIfMissing(key: K, crossinline defaultValue: () -> V): V
Возвращает значение для заданного ключа, если оно присутствует. В противном случае вызывает функцию defaultValue, помещает ее результат в карту под заданным ключом и возвращает результат вызова.
Платформа и требования к версии: Common (2.4)
inline fun <K, V> MutableMap<K, V>.getOrPutIfNull(key: K, crossinline defaultValue: () -> V): V
Возвращает значение для заданного ключа, если оно присутствует и не равно null. В противном случае вызывает функцию defaultValue, помещает ее результат в карту под заданным ключом и возвращает результат вызова.
Платформа и требования к версии: Common (1.1)
fun <K, V> Map<K, V>.getValue(key: K): V
Возвращает значение для заданного ключа или выбрасывает исключение, если такого ключа нет в карте.
inline operator fun <V, V1 : V> Map<in String, V>.getValue(thisRef: Any?, property: KProperty<*>): V1
Возвращает значение свойства для заданного объекта из этой карты только для чтения.
inline operator fun <V, V1 : V> MutableMap<in String, out V>.getValue(thisRef: Any?, property: KProperty<*>): V1
Возвращает значение свойства для заданного объекта из этой изменяемой карты.
Платформа и требования к версии: Common (1.0), Native (1.3), Wasm-JS (1.8), Wasm-WASI (1.8)
expect open override fun isEmpty(): Boolean
Возвращает true, если карта пуста (не содержит элементов), и false в противном случае.
Платформа и требования к версии: JS (1.1)
open override fun isEmpty(): Boolean
Возвращает true, если карта пуста (не содержит элементов), и false в противном случае.
Платформа и требования к версии: Common (1.0)
inline operator fun <K, V> Map<out K, V>.iterator(): Iterator<Map.Entry<K, V>>
inline operator fun <K, V> MutableMap<K, V>.iterator(): MutableIterator<MutableMap.MutableEntry<K, V>>
Возвращает MutableIterator для изменяемых элементов MutableMap.
Платформа и требования к версии: Common (1.0)
inline fun <K, V, R, M : MutableMap<in R, in V>> Map<out K, V>.mapKeysTo(destination: M, transform: (Map.Entry<K, V>) -> R): M
Заполняет указанную карту назначения элементами, ключи которых получены применением функции transform к каждому элементу этой Map, а значения взяты из этой карты.
Платформа и требования к версии: Common (1.0)
inline fun <K, V, R : Any, C : MutableCollection<in R>> Map<out K, V>.mapNotNullTo(destination: C, transform: (Map.Entry<K, V>) -> R?): C
Применяет заданную функцию transform к каждому элементу исходной карты и добавляет только ненулевые результаты в указанное назначение.
Требования к платформе и версии: Common (1.0)
inline fun <K, V, R, M : MutableMap<in K, in R>> Map<out K, V>.mapValuesTo(destination: M, transform: (Map.Entry<K, V>) -> R): M
Заполняет указанную карту назначения записями, ключи которых совпадают с ключами этой карты, а значения получены применением функции преобразования к каждой записи этой Map.
Требования к платформе и версии: Common (1.7)
inline fun <K, V, R : Comparable<R>> Map<out K, V>.maxBy(selector: (Map.Entry<K, V>) -> R): Map.Entry<K, V>
Возвращает первую запись, для которой функция селектора возвращает наибольшее значение.
Требования к платформе и версии: JVM (1.0)
inline fun <K, V, R : Comparable<R>> Map<out K, V>.maxBy(selector: (Map.Entry<K, V>) -> R): Map.Entry<K, V>?
Требования к платформе и версии: Common (1.4)
inline fun <K, V, R : Comparable<R>> Map<out K, V>.maxOf(selector: (Map.Entry<K, V>) -> R): R
inline fun <K, V> Map<out K, V>.maxOf(selector: (Map.Entry<K, V>) -> Double): Double
inline fun <K, V> Map<out K, V>.maxOf(selector: (Map.Entry<K, V>) -> Float): Float
Возвращает наибольшее значение среди всех значений, полученных функцией селектора, применённой к каждой записи карты.
Требования к платформе и версии: Common (1.4)
inline fun <K, V, R : Comparable<R>> Map<out K, V>.maxOfOrNull(selector: (Map.Entry<K, V>) -> R): R?
inline fun <K, V> Map<out K, V>.maxOfOrNull(selector: (Map.Entry<K, V>) -> Double): Double?
inline fun <K, V> Map<out K, V>.maxOfOrNull(selector: (Map.Entry<K, V>) -> Float): Float?
Возвращает наибольшее значение среди всех значений, полученных функцией селектора, применённой к каждой записи карты, или null, если карта пуста.
Требования к платформе и версии: Common (1.4)
inline fun <K, V, R> Map<out K, V>.maxOfWith(comparator: Comparator<in R>, selector: (Map.Entry<K, V>) -> R): R
Возвращает наибольшее значение согласно указанному компаратору среди всех значений, полученных функцией селектора, применённой к каждой записи карты.
Требования к платформе и версии: Common (1.4)
inline fun <K, V, R> Map<out K, V>.maxOfWithOrNull(comparator: Comparator<in R>, selector: (Map.Entry<K, V>) -> R): R?
Возвращает наибольшее значение согласно указанному компаратору среди всех значений, полученных функцией селектора, применённой к каждой записи карты, или null, если карта пуста.
Требования к платформе и версии: Common (1.7)
inline fun <K, V> Map<out K, V>.maxWith(comparator: Comparator<in Map.Entry<K, V>>): Map.Entry<K, V>
Возвращает первую запись, имеющую наибольшее значение согласно указанному компаратору.
Требования к платформе и версии: JVM (1.0)
inline fun <K, V> Map<out K, V>.maxWith(comparator: Comparator<in Map.Entry<K, V>>): Map.Entry<K, V>?
Требования к платформе и версии: Common (1.4)
inline fun <K, V> Map<out K, V>.maxWithOrNull(comparator: Comparator<in Map.Entry<K, V>>): Map.Entry<K, V>?
Возвращает первую запись, имеющую наибольшее значение согласно указанному компаратору, или null, если записей нет.
Требования к платформе и версии: Common (1.7)
inline fun <K, V, R : Comparable<R>> Map<out K, V>.minBy(selector: (Map.Entry<K, V>) -> R): Map.Entry<K, V>
Возвращает первую запись, для которой функция селектора возвращает наименьшее значение.
Требования к платформе и версии: JVM (1.0)
inline fun <K, V, R : Comparable<R>> Map<out K, V>.minBy(selector: (Map.Entry<K, V>) -> R): Map.Entry<K, V>?
Требования к платформе и версии: Common (1.4)
inline fun <K, V, R : Comparable<R>> Map<out K, V>.minOf(selector: (Map.Entry<K, V>) -> R): R
inline fun <K, V> Map<out K, V>.minOf(selector: (Map.Entry<K, V>) -> Double): Double
inline fun <K, V> Map<out K, V>.minOf(selector: (Map.Entry<K, V>) -> Float): Float
Возвращает наименьшее значение среди всех значений, полученных функцией селектора, применённой к каждой записи карты.
Требования к платформе и версии: Common (1.4)
inline fun <K, V, R : Comparable<R>> Map<out K, V>.minOfOrNull(selector: (Map.Entry<K, V>) -> R): R?
inline fun <K, V> Map<out K, V>.minOfOrNull(selector: (Map.Entry<K, V>) -> Double): Double?
inline fun <K, V> Map<out K, V>.minOfOrNull(selector: (Map.Entry<K, V>) -> Float): Float?
Возвращает наименьшее значение среди всех значений, полученных функцией селектора, применённой к каждой записи карты, или null, если карта пуста.
Требования к платформе и версии: Common (1.4)
inline fun <K, V, R> Map<out K, V>.minOfWith(comparator: Comparator<in R>, selector: (Map.Entry<K, V>) -> R): R
Возвращает наименьшее значение согласно указанному компаратору среди всех значений, полученных функцией селектора, применённой к каждой записи карты.
Требования к платформе и версии: Common (1.4)
inline fun <K, V, R> Map<out K, V>.minOfWithOrNull(comparator: Comparator<in R>, selector: (Map.Entry<K, V>) -> R): R?
Возвращает наименьшее значение согласно указанному компаратору среди всех значений, полученных функцией селектора, применённой к каждой записи карты, или null, если карта пуста.
Требования к платформе и версии: Common (1.1)
operator fun <K, V> Map<out K, V>.minus(key: K): Map<K, V>
Возвращает карту, содержащую все записи исходной карты, кроме записи с указанным ключом.
operator fun <K, V> Map<out K, V>.minus(keys: Array<out K>): Map<K, V>
Возвращает карту, содержащую все записи исходной карты, кроме записей, ключи которых входят в указанный массив ключей.
operator fun <K, V> Map<out K, V>.minus(keys: Iterable<K>): Map<K, V>
Возвращает карту, содержащую все записи исходной карты, кроме записей, ключи которых входят в указанную коллекцию ключей.
operator fun <K, V> Map<out K, V>.minus(keys: Sequence<K>): Map<K, V>
Возвращает карту, содержащую все записи исходной карты, кроме записей, ключи которых входят в указанную последовательность ключей.
Требования к платформе и версии: Common (1.1)
inline operator fun <K, V> MutableMap<K, V>.minusAssign(key: K)
Удаляет из этой изменяемой карты запись с указанным ключом.
inline operator fun <K, V> MutableMap<K, V>.minusAssign(keys: Array<out K>)
Удаляет из этой изменяемой карты все записи, ключи которых входят в указанный массив ключей.
inline operator fun <K, V> MutableMap<K, V>.minusAssign(keys: Iterable<K>)
Удаляет из этой изменяемой карты все записи, ключи которых входят в указанную коллекцию ключей.
inline operator fun <K, V> MutableMap<K, V>.minusAssign(keys: Sequence<K>)
Удаляет из этой изменяемой карты все записи, ключи которых входят в указанную последовательность ключей.
Требования к платформе и версии: Common (1.7)
inline fun <K, V> Map<out K, V>.minWith(comparator: Comparator<in Map.Entry<K, V>>): Map.Entry<K, V>
Возвращает первую запись, имеющую наименьшее значение согласно указанному компаратору.
Требования к платформе и версии: JVM (1.0)
fun <K, V> Map<out K, V>.minWith(comparator: Comparator<in Map.Entry<K, V>>): Map.Entry<K, V>?
Требования к платформе и версии: Common (1.4)
inline fun <K, V> Map<out K, V>.minWithOrNull(comparator: Comparator<in Map.Entry<K, V>>): Map.Entry<K, V>?
Возвращает первую запись, имеющую наименьшее значение согласно указанному компаратору, или null, если записей нет.
Требования к платформе и версии: Common (1.0)
operator fun <K, V> Map<out K, V>.plus(pairs: Array<out Pair<K, V>>): Map<K, V>
Создаёт новую карту только для чтения, заменяя или добавляя в эту карту записи из заданного массива пар «ключ-значение» pairs.
operator fun <K, V> Map<out K, V>.plus(pair: Pair<K, V>): Map<K, V>
Создаёт новую карту только для чтения, заменяя или добавляя в эту карту запись из заданной пары «ключ-значение» pair.
operator fun <K, V> Map<out K, V>.plus(pairs: Iterable<Pair<K, V>>): Map<K, V>
Создаёт новую карту только для чтения, заменяя или добавляя в эту карту записи из заданной коллекции пар «ключ-значение» pairs.
operator fun <K, V> Map<out K, V>.plus(map: Map<out K, V>): Map<K, V>
Создаёт новую карту только для чтения, заменяя или добавляя в эту карту записи из другой карты.
operator fun <K, V> Map<out K, V>.plus(pairs: Sequence<Pair<K, V>>): Map<K, V>
Создаёт новую карту только для чтения, заменяя или добавляя в эту карту записи из заданной последовательности пар «ключ-значение» pairs.
Требования к платформе и версии: Common (1.0)
inline operator fun <K, V> MutableMap<in K, in V>.plusAssign(pairs: Array<out Pair<K, V>>)
Добавляет в эту изменяемую карту все пары из указанного массива pairs или заменяет ими существующие.
inline operator fun <K, V> MutableMap<in K, in V>.plusAssign(pair: Pair<K, V>)
Добавляет указанную пару в эту изменяемую карту или заменяет ею существующую.
inline operator fun <K, V> MutableMap<in K, in V>.plusAssign(pairs: Iterable<Pair<K, V>>)
Добавляет в эту изменяемую карту все пары из указанной коллекции pairs или заменяет ими существующие.
inline operator fun <K, V> MutableMap<in K, in V>.plusAssign(map: Map<K, V>)
Добавляет в эту изменяемую карту все записи из указанной карты или заменяет ими существующие.
inline operator fun <K, V> MutableMap<in K, in V>.plusAssign(pairs: Sequence<Pair<K, V>>)
Добавляет в эту изменяемую карту все пары из указанной последовательности pairs или заменяет ими существующие.
Требования к платформе и версии: Common (1.0)
fun <K, V> MutableMap<in K, in V>.putAll(pairs: Array<out Pair<K, V>>)
Помещает все заданные пары в эту MutableMap, используя первый компонент пары как ключ, а второй — как значение.
fun <K, V> MutableMap<in K, in V>.putAll(pairs: Iterable<Pair<K, V>>)
Помещает все элементы заданной коллекции в эту MutableMap, используя первый компонент пары как ключ, а второй — как значение.
fun <K, V> MutableMap<in K, in V>.putAll(pairs: Sequence<Pair<K, V>>)
Помещает все элементы заданной последовательности в эту MutableMap, используя первый компонент пары как ключ, а второй — как значение.
Требования к платформе и версии: Common (1.0)
inline fun <K, V> MutableMap<out K, V>.remove(key: K): V?
Удаляет указанный ключ и соответствующее ему значение из этой карты.
Требования к платформе и версии: JVM (1.2)
inline fun <K, V> MutableMap<out K, out V>.remove(key: K, value: V): Boolean
Удаляет запись для указанного ключа, только если в данный момент ему соответствует указанное значение.
Требования к платформе и версии: Common (1.1)
fun <K, V> Map<out K, V>.toMap(): Map<K, V>
Возвращает новую карту только для чтения, содержащую все пары «ключ-значение» исходной карты.
fun <K, V, M : MutableMap<in K, in V>> Map<out K, V>.toMap(destination: M): M
Заполняет изменяемую карту назначения парами «ключ-значение» из заданной карты и возвращает её.
Требования к платформе и версии: Common (1.1)
fun <K, V> Map<out K, V>.toMutableMap(): MutableMap<K, V>
Возвращает новую изменяемую карту, содержащую все пары «ключ-значение» исходной карты.
Требования к платформе и версии: JVM (1.0)
inline fun Map<String, String>.toProperties(): Properties
Преобразует эту Map в объект Properties.
Требования к платформе и версии: JVM (1.0)
fun <K : Comparable<K>, V> Map<out K, V>.toSortedMap(): SortedMap<K, V>
Преобразует эту Map в SortedMap. Полученная SortedMap определяет равенство и порядок ключей в соответствии с их естественным порядком сортировки.
fun <K, V> Map<out K, V>.toSortedMap(comparator: Comparator<in K>): SortedMap<K, V>
Преобразует эту Map в SortedMap. Полученная SortedMap определяет равенство и порядок ключей в соответствии с порядком сортировки, задаваемым указанным компаратором.
Требования к платформе и версии: Common (1.0)
fun <K, V> Map<K, V>.withDefault(defaultValue: (key: K) -> V): Map<K, V>
Возвращает оболочку этой карты только для чтения с неявным значением по умолчанию, предоставляемым указанной функцией defaultValue.
fun <K, V> MutableMap<K, V>.withDefault(defaultValue: (key: K) -> V): MutableMap<K, V>
Возвращает оболочку этой изменяемой карты с неявным значением по умолчанию, предоставляемым указанной функцией defaultValue.
© 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/-hash-map/index.html