Linked Hash Map
Требования к платформе и версии: Common (1.0)
expect class LinkedHashMap<K, V> : MutableMap<K, V>
Реализация MutableMap на основе хеш-таблицы, сохраняющая порядок вставки.
Этот класс хранит пары ключ-значение в структуре данных на основе хеш-таблицы, обеспечивающей быстрый поиск по ключам и одновременно сохраняющей порядок вставки записей. Он полностью реализует контракт MutableMap, предоставляя все стандартные операции с отображениями, включая вставку, удаление и поиск значений по ключу.
Ключи и значения null
LinkedHashMap принимает null в качестве ключа. Поскольку ключи уникальны, в отображении может существовать не более одной записи с ключом null. LinkedHashMap также принимает null в качестве значения, и несколько записей могут иметь значения null.
Контракты хеш-кода и равенства ключей
LinkedHashMap использует функции Any.hashCode и Any.equals ключей для организации и поиска записей. Ключи считаются равными, если функция Any.equals возвращает true; равные ключи должны иметь одинаковое значение Any.hashCode. Нарушение этого контракта может привести к некорректному поведению.
Функции Any.hashCode и Any.equals должны быть согласованными и неизменными в течение срока жизни объектов-ключей. Изменение объекта-ключа, влияющее на его хеш-код или равенство после использования в качестве ключа в LinkedHashMap, может привести к тому, что запись станет недоступной.
Характеристики производительности
Приведенные ниже характеристики производительности предполагают, что функция Any.hashCode ключей равномерно распределяет их по хеш-таблице, сводя к минимуму коллизии. Неудачная хеш-функция, вызывающая множество коллизий, может снизить производительность.
LinkedHashMap эффективно выполняет распространенные операции:
Поиск (get, containsKey): время O(1)
Поиск значения (containsValue): время O(n), требует просмотра всех записей
Порядок итерации
LinkedHashMap поддерживает предсказуемый порядок итерации по ключам, значениям и записям. Записи перебираются в том порядке, в котором они были добавлены в отображение, от самых старых к самым новым. Этот порядок вставки сохраняется даже при рехешировании отображения (когда записи добавляются или удаляются, а внутренняя емкость изменяется).
Обратите внимание, что повторная вставка ключа в отображение не влияет на порядок вставки. Ключ k повторно вставляется в отображение, когда вызывается put(k, v), а отображение уже содержит запись с ключом k.
Если предсказуемый порядок итерации не требуется, рассмотрите возможность использования HashMap, которая может обеспечивать немного лучшую производительность.
Рекомендации по использованию
LinkedHashMap использует внутреннюю структуру данных с конечной емкостью — максимальным числом записей, которое она может хранить до необходимости увеличения. По мере добавления записей отображение отслеживает коэффициент загрузки — отношение числа записей к текущей емкости. Когда это отношение превышает определенный порог, отображение автоматически увеличивает емкость и выполняет рехеширование — перестраивает внутреннюю структуру данных, чтобы перераспределить записи. Рехеширование — относительно затратная операция, временно снижающая производительность. При создании LinkedHashMap можно при необходимости указать начальную емкость и пороговое значение коэффициента загрузки. Обратите внимание, что эти параметры являются лишь подсказками для реализации и могут быть проигнорированы.
Чтобы оптимизировать производительность и использование памяти:
Если число записей известно заранее, используйте конструктор с начальной емкостью, чтобы избежать нескольких операций рехеширования по мере роста отображения.
Выберите подходящий коэффициент загрузки при создании отображения. Более низкий коэффициент загрузки уменьшает вероятность коллизий, но требует больше памяти, тогда как более высокий экономит память, но может увеличить время поиска. Коэффициент загрузки по умолчанию обычно обеспечивает хороший баланс.
Убедитесь, что реализации Any.hashCode объектов-ключей обеспечивают хорошее распределение, чтобы свести к минимуму коллизии и сохранить высокую производительность.
При добавлении нескольких записей предпочитайте putAll многократным отдельным вызовам put.
Потокобезопасность
LinkedHashMap не является потокобезопасной. Если несколько потоков одновременно обращаются к экземпляру и хотя бы один из них изменяет его, требуется внешняя синхронизация.
Параметры типа
тип ключей отображения. Отображение инвариантно относительно типа ключа.
тип значений отображения. Изменяемое отображение инвариантно относительно типа значения.
Требования к платформе и версии: JS (1.1)
actual open class LinkedHashMap<K, V> : HashMap<K, V> , MutableMap<K, V>
Реализация MutableMap на основе хеш-таблицы, сохраняющая порядок вставки.
Этот класс хранит пары ключ-значение в структуре данных на основе хеш-таблицы, обеспечивающей быстрый поиск по ключам и одновременно сохраняющей порядок вставки записей. Он полностью реализует контракт MutableMap, предоставляя все стандартные операции с отображениями, включая вставку, удаление и поиск значений по ключу.
Ключи и значения null
LinkedHashMap принимает null в качестве ключа. Поскольку ключи уникальны, в отображении может существовать не более одной записи с ключом null. LinkedHashMap также принимает null в качестве значения, и несколько записей могут иметь значения null.
Контракты хеш-кода и равенства ключей
LinkedHashMap использует функции Any.hashCode и Any.equals ключей для организации и поиска записей. Ключи считаются равными, если функция Any.equals возвращает true; равные ключи должны иметь одинаковое значение Any.hashCode. Нарушение этого контракта может привести к некорректному поведению.
Функции Any.hashCode и Any.equals должны быть согласованными и неизменными в течение срока жизни объектов-ключей. Изменение объекта-ключа, влияющее на его хеш-код или равенство после использования в качестве ключа в LinkedHashMap, может привести к тому, что запись станет недоступной.
Характеристики производительности
Приведенные ниже характеристики производительности предполагают, что функция Any.hashCode ключей равномерно распределяет их по хеш-таблице, сводя к минимуму коллизии. Неудачная хеш-функция, вызывающая множество коллизий, может снизить производительность.
LinkedHashMap эффективно выполняет распространенные операции:
Поиск (get, containsKey): время O(1)
Поиск значения (containsValue): время O(n), требует просмотра всех записей
Порядок итерации
LinkedHashMap поддерживает предсказуемый порядок итерации по ключам, значениям и записям. Записи перебираются в том порядке, в котором они были добавлены в отображение, от самых старых к самым новым. Этот порядок вставки сохраняется даже при рехешировании отображения (когда записи добавляются или удаляются, а внутренняя емкость изменяется).
Обратите внимание, что повторная вставка ключа в отображение не влияет на порядок вставки. Ключ k повторно вставляется в отображение, когда вызывается put(k, v), а отображение уже содержит запись с ключом k.
Если предсказуемый порядок итерации не требуется, рассмотрите возможность использования HashMap, которая может обеспечивать немного лучшую производительность.
Рекомендации по использованию
LinkedHashMap использует внутреннюю структуру данных с конечной емкостью — максимальным числом записей, которое она может хранить до необходимости увеличения. Когда отображение заполняется, оно автоматически увеличивает емкость и выполняет рехеширование — перестраивает внутреннюю структуру данных, чтобы перераспределить записи. Рехеширование — относительно затратная операция, временно снижающая производительность. При создании LinkedHashMap можно при необходимости указать начальную емкость, которая будет использоваться для задания размера внутренней структуры данных и, возможно, позволит избежать рехеширования по мере роста отображения.
Чтобы оптимизировать производительность и использование памяти:
Если число записей известно заранее, используйте конструктор с начальной емкостью, чтобы избежать нескольких операций рехеширования по мере роста отображения.
Убедитесь, что реализации Any.hashCode объектов-ключей обеспечивают хорошее распределение, чтобы свести к минимуму коллизии и сохранить высокую производительность.
При добавлении нескольких записей предпочитайте putAll многократным отдельным вызовам put.
Потокобезопасность
LinkedHashMap не является потокобезопасной. Если несколько потоков одновременно обращаются к экземпляру и хотя бы один из них изменяет его, требуется внешняя синхронизация.
Параметры типа
тип ключей отображения. Отображение инвариантно относительно типа ключа.
тип значений отображения. Изменяемое отображение инвариантно относительно типа значения.
Требования к платформе и версии: JVM (1.1)
actual typealias LinkedHashMap<K, V> = java.util.LinkedHashMap<K, V>
Реализация MutableMap на основе хеш-таблицы, сохраняющая порядок вставки.
Этот класс хранит пары ключ-значение в структуре данных на основе хеш-таблицы, обеспечивающей быстрый поиск по ключам и одновременно сохраняющей порядок вставки записей. Он полностью реализует контракт MutableMap, предоставляя все стандартные операции с отображениями, включая вставку, удаление и поиск значений по ключу.
Ключи и значения null
LinkedHashMap принимает null в качестве ключа. Поскольку ключи уникальны, в отображении может существовать не более одной записи с ключом null. LinkedHashMap также принимает null в качестве значения, и несколько записей могут иметь значения null.
Контракты хеш-кода и равенства ключей
LinkedHashMap использует функции Any.hashCode и Any.equals ключей для организации и поиска записей. Ключи считаются равными, если функция Any.equals возвращает true; равные ключи должны иметь одинаковое значение Any.hashCode. Нарушение этого контракта может привести к некорректному поведению.
Функции Any.hashCode и Any.equals должны быть согласованными и неизменными в течение срока жизни объектов-ключей. Изменение объекта-ключа, влияющее на его хеш-код или равенство после использования в качестве ключа в LinkedHashMap, может привести к тому, что запись станет недоступной.
Характеристики производительности
Приведенные ниже характеристики производительности предполагают, что функция Any.hashCode ключей равномерно распределяет их по хеш-таблице, сводя к минимуму коллизии. Неудачная хеш-функция, вызывающая множество коллизий, может снизить производительность.
LinkedHashMap эффективно выполняет распространенные операции:
Поиск (get, containsKey): время O(1)
Вставка и удаление (put, remove): время O(1)
Поиск значения (containsValue): время O(n), требует просмотра всех записей
Итерация (entries, keys, values): время O(n)
Порядок итерации
LinkedHashMap поддерживает предсказуемый порядок итерации по ключам, значениям и записям. Записи перебираются в том порядке, в котором они были добавлены в отображение, от самых старых к самым новым. Этот порядок вставки сохраняется даже при рехешировании отображения (когда записи добавляются или удаляются, а внутренняя емкость изменяется).
Обратите внимание, что повторная вставка ключа в отображение не влияет на порядок вставки. Ключ k повторно вставляется в отображение, когда вызывается put(k, v), а отображение уже содержит запись с ключом k.
Если предсказуемый порядок итерации не требуется, рассмотрите возможность использования HashMap, которая может обеспечивать немного лучшую производительность.
Рекомендации по использованию
LinkedHashMap использует внутреннюю структуру данных с конечной емкостью — максимальным числом записей, которое она может хранить до необходимости увеличения. По мере добавления записей отображение отслеживает коэффициент загрузки — отношение числа записей к текущей емкости. Когда это отношение превышает определенный порог, отображение автоматически увеличивает емкость и выполняет рехеширование — перестраивает внутреннюю структуру данных, чтобы перераспределить записи. Рехеширование — относительно затратная операция, временно снижающая производительность. При создании LinkedHashMap можно при необходимости указать начальную емкость и пороговое значение коэффициента загрузки. Обратите внимание, что эти параметры являются лишь подсказками для реализации и могут быть проигнорированы.
Чтобы оптимизировать производительность и использование памяти:
Если число записей известно заранее, используйте конструктор с начальной емкостью, чтобы избежать нескольких операций рехеширования по мере роста отображения.
Выберите подходящий коэффициент загрузки при создании отображения. Более низкий коэффициент загрузки уменьшает вероятность коллизий, но требует больше памяти, тогда как более высокий экономит память, но может увеличить время поиска. Коэффициент загрузки по умолчанию обычно обеспечивает хороший баланс.
Убедитесь, что реализации Any.hashCode объектов-ключей обеспечивают хорошее распределение, чтобы свести к минимуму коллизии и сохранить высокую производительность.
При добавлении нескольких записей предпочитайте putAll многократным отдельным вызовам put.
Потокобезопасность
LinkedHashMap не является потокобезопасной. Если несколько потоков одновременно обращаются к экземпляру и хотя бы один из них изменяет его, требуется внешняя синхронизация.
Параметры типа
тип ключей отображения. Отображение инвариантно относительно типа ключа.
тип значений отображения. Изменяемое отображение инвариантно относительно типа значения.
Требования к платформе и версии: Native (1.3), Wasm-JS (1.8), Wasm-WASI (1.8)
actual typealias LinkedHashMap<, > = HashMap<K, V>
Реализация MutableMap на основе хеш-таблицы, сохраняющая порядок вставки.
Этот класс хранит пары ключ-значение в структуре данных на основе хеш-таблицы, обеспечивающей быстрый поиск по ключам и одновременно сохраняющей порядок вставки записей. Он полностью реализует контракт MutableMap, предоставляя все стандартные операции с отображениями, включая вставку, удаление и поиск значений по ключу.
Ключи и значения null
LinkedHashMap принимает null в качестве ключа. Поскольку ключи уникальны, в отображении может существовать не более одной записи с ключом null. LinkedHashMap также принимает null в качестве значения, и несколько записей могут иметь значения null.
Контракты хеш-кода и равенства ключей
LinkedHashMap использует функции Any.hashCode и Any.equals ключей для организации и поиска записей. Ключи считаются равными, если функция Any.equals возвращает true; равные ключи должны иметь одинаковое значение Any.hashCode. Нарушение этого контракта может привести к некорректному поведению.
Функции Any.hashCode и Any.equals должны быть согласованными и неизменными в течение срока жизни объектов-ключей. Изменение объекта-ключа, влияющее на его хеш-код или равенство после использования в качестве ключа в LinkedHashMap, может привести к тому, что запись станет недоступной.
Характеристики производительности
Приведенные ниже характеристики производительности предполагают, что функция Any.hashCode ключей равномерно распределяет их по хеш-таблице, сводя к минимуму коллизии. Неудачная хеш-функция, вызывающая множество коллизий, может снизить производительность.
LinkedHashMap эффективно выполняет распространенные операции:
Поиск (get, containsKey): время O(1)
Вставка и удаление (put, remove): время O(1)
Поиск значения (containsValue): время O(n), требует просмотра всех записей
Порядок итерации
LinkedHashMap поддерживает предсказуемый порядок итерации по ключам, значениям и записям. Записи перебираются в том порядке, в котором они были добавлены в отображение, от самых старых к самым новым. Этот порядок вставки сохраняется даже при рехешировании отображения (когда записи добавляются или удаляются, а внутренняя емкость изменяется).
Обратите внимание, что повторная вставка ключа в отображение не влияет на порядок вставки. Ключ k повторно вставляется в отображение, когда вызывается put(k, v), а отображение уже содержит запись с ключом k.
Если предсказуемый порядок итерации не требуется, рассмотрите возможность использования HashMap, которая может обеспечивать немного лучшую производительность.
Рекомендации по использованию
LinkedHashMap использует внутреннюю структуру данных с конечной емкостью — максимальным числом записей, которое она может хранить до необходимости увеличения. Когда отображение заполняется, оно автоматически увеличивает емкость и выполняет рехеширование — перестраивает внутреннюю структуру данных, чтобы перераспределить записи. Рехеширование — относительно затратная операция, временно снижающая производительность. При создании LinkedHashMap можно при необходимости указать начальную емкость, которая будет использоваться для задания размера внутренней структуры данных и, возможно, позволит избежать рехеширования по мере роста отображения.
Чтобы оптимизировать производительность и использование памяти:
Если число записей известно заранее, используйте конструктор с начальной емкостью, чтобы избежать нескольких операций рехеширования по мере роста отображения.
Убедитесь, что реализации Any.hashCode объектов-ключей обеспечивают хорошее распределение, чтобы свести к минимуму коллизии и сохранить высокую производительность.
При добавлении нескольких записей предпочитайте putAll многократным отдельным вызовам put.
Потокобезопасность
LinkedHashMap не является потокобезопасной. Если несколько потоков одновременно обращаются к экземпляру и хотя бы один из них изменяет его, требуется внешняя синхронизация.
Параметры типа
тип ключей отображения. Отображение инвариантно относительно типа ключа.
тип значений отображения. Изменяемое отображение инвариантно относительно типа значения.
Конструкторы
Требования к платформе и версии: Common, JS
expect constructor()
Создает новое пустое отображение LinkedHashMap.
expect constructor(initialCapacity: Int)
Создает новое пустое отображение LinkedHashMap с указанной начальной емкостью.
expect constructor(initialCapacity: Int, loadFactor: Float)
Создает новое пустое отображение LinkedHashMap с указанными начальной емкостью и коэффициентом загрузки.
expect constructor(original: Map<out K, V>)
Создает новое отображение LinkedHashMap, заполненное содержимым указанного отображения original.
Свойства
Требования к платформе и версии: Common (1.0)
expect open override val entries: MutableSet<MutableMap.MutableEntry<K, V>>
Возвращает MutableSet, содержащий все пары ключ/значение этого отображения.
Требования к платформе и версии: JS (1.1)
actual open override val entries: MutableSet<MutableMap.MutableEntry<K, V>>
Возвращает MutableSet, содержащий все пары ключ/значение этого отображения.
Требования к платформе и версии: Common (1.0)
expect open override val keys: MutableSet<K>
Возвращает MutableSet, содержащий все ключи этого отображения.
Требования к платформе и версии: JS (1.1)
actual open override val keys: MutableSet<K>
Возвращает доступный только для чтения Set, содержащий все ключи этого отображения.
Требования к платформе и версии: Common (1.0)
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 как обычный Map только для чтения. Структурные изменения базового отображения синхронизируются с представлением.
Требования к платформе и версии: Common (1.0)
expect open override fun containsKey(key: K): Boolean
Возвращает true, если отображение содержит указанный ключ.
Требования к платформе и версии: JS (1.1)
actual open override fun containsKey(key: K): Boolean
Возвращает true, если отображение содержит указанный ключ.
Требования к платформе и версии: Common (1.0)
expect open override fun containsValue(value: V): Boolean
Возвращает true, если отображение сопоставляет один или несколько ключей указанному значению.
Требования к платформе и версии: JS (1.1)
actual open override fun containsValue(value: V): Boolean
Возвращает true, если отображение сопоставляет один или несколько ключей указанному значению.
Требования к платформе и версии: 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
Требования к платформе и версии: Common (1.0)
expect open operator override fun get(key: K): V?
Возвращает значение, соответствующее заданному ключу, или null, если такого ключа нет в отображении.
Требования к платформе и версии: JS (1.1)
actual open operator override fun get(key: K): V?
Возвращает значение, соответствующее заданному ключу, или null, если такого ключа нет в отображении.
Требования к платформе и версии: 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)
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 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>
Создает новую карту только для чтения, заменяя или добавляя записи в эту карту на основе заданного массива пар «ключ-значение» пар.
operator fun <K, V> Map<out K, V>.plus(pair: Pair<K, V>): Map<K, V>
Создает новую карту только для чтения, заменяя или добавляя запись в эту карту на основе заданной пары «ключ-значение» пары.
operator fun <K, V> Map<out K, V>.plus(pairs: Iterable<Pair<K, V>>): Map<K, V>
Создает новую карту только для чтения, заменяя или добавляя записи в эту карту на основе заданной коллекции пар «ключ-значение» пар.
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>
Создает новую карту только для чтения, заменяя или добавляя записи в эту карту на основе заданной последовательности пар «ключ-значение» пар.
Требования к платформе и версии: Common (1.0)
inline operator fun <K, V> MutableMap<in K, in V>.plusAssign(pairs: Array<out Pair<K, V>>)
Добавляет в эту изменяемую карту все пары из заданного массива пар или заменяет ими существующие.
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>>)
Добавляет в эту изменяемую карту все пары из заданной коллекции пар или заменяет ими существующие.
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>>)
Добавляет в эту изменяемую карту все пары из заданной последовательности пар или заменяет ими существующие.
Требования к платформе и версии: Common (1.0)
expect open override fun putAll(from: Map<out K, V>)
Обновляет эту карту парами «ключ-значение» из указанной карты источника.
Требования к платформе и версии: JS (1.1)
actual open override fun putAll(from: Map<out K, V>)
Обновляет эту карту парами «ключ-значение» из указанной карты источника.
Требования к платформе и версии: 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)
expect open override fun remove(key: K): V?
Удаляет указанный ключ и соответствующее ему значение из этой карты.
Требования к платформе и версии: JS (1.1)
actual open override fun remove(key: K): V?
Удаляет указанный ключ и соответствующее ему значение из этой карты.
Требования к платформе и версии: 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/-linked-hash-map/index.html