HashMap

Common
Native
1.0
class HashMap<K, V> : MutableMap<K, V>
(Common source) (Native source)
JVM
1.1
typealias HashMap<K, V> = HashMap<K, V>
(source)
JS
1.1
open class HashMap<K, V> : 
    AbstractMutableMap<K, V>,
    MutableMap<K, V>

(source)

Hash table based implementation of the MutableMap interface.

This implementation makes no guarantees regarding the order of enumeration of keys, values and entries collections.

Constructors

Common
JS
Native
1.0

<init>

Creates a new empty HashMap.

<init>()

Creates a new empty HashMap with the specified initial capacity.

<init>(initialCapacity: Int)

Creates a new empty HashMap with the specified initial capacity and load factor.

<init>(initialCapacity: Int, loadFactor: Float)

Creates a new HashMap filled with the contents of the specified original map.

<init>(original: Map<out K, V>)

Properties

entries

Returns a MutableSet of all key/value pairs in this map.

Common
Native
1.0
val entries: MutableSet<MutableEntry<K, V>>
JS
1.1
open val entries: MutableSet<MutableEntry<K, V>>
Common
Native
1.0

keys

Returns a MutableSet of all keys in this map.

val keys: MutableSet<K>

size

Returns the number of key/value pairs in the map.

Common
Native
1.0
val size: Int
JS
1.1
open val size: Int
Common
Native
1.0

values

Returns a MutableCollection of all values in this map. Note that this collection may contain duplicate values.

val values: MutableCollection<V>

Functions

clear

Removes all elements from this map.

Common
Native
1.0
fun clear()
JS
1.1
open fun clear()

containsKey

Returns true if the map contains the specified key.

Common
Native
1.0
fun containsKey(key: K): Boolean
JS
1.1
open fun containsKey(key: K): Boolean

containsValue

Returns true if the map maps one or more keys to the specified value.

Common
Native
1.0
fun containsValue(value: V): Boolean
JS
1.1
open fun containsValue(value: V): Boolean
Native
1.3

equals

Indicates whether some other object is "equal to" this one. Implementations must fulfil the following requirements:

fun equals(other: Any?): Boolean

get

Returns the value corresponding to the given key, or null if such a key is not present in the map.

Common
Native
1.0
operator fun get(key: K): V?
JS
1.1
open operator fun get(key: K): V?
Native
1.3

hashCode

Returns a hash code value for the object. The general contract of hashCode is:

fun hashCode(): Int
Common
Native
1.0

isEmpty

Returns true if the map is empty (contains no elements), false otherwise.

fun isEmpty(): Boolean

put

Associates the specified value with the specified key in the map.

Common
Native
1.0
fun put(key: K, value: V): V?
JS
1.1
open fun put(key: K, value: V): V?

putAll

Updates this map with key/value pairs from the specified map from.

Common
Native
1.0
fun putAll(from: Map<out K, V>)
JS
1.1
open fun putAll(from: Map<out K, V>)

remove

Removes the specified key and its corresponding value from this map.

Common
Native
1.0
fun remove(key: K): V?
JS
1.1
open fun remove(key: K): V?
Native
1.3

toString

Returns a string representation of the object.

fun toString(): String

Inherited Functions

Common
1.0

isEmpty

open fun isEmpty(): Boolean

Extension Functions

Common
JVM
JS
Native
1.0

all

Returns true if all entries match the given predicate.

fun <K, V> Map<out K, V>.all(
    predicate: (Entry<K, V>) -> Boolean
): Boolean
Common
JVM
JS
Native
1.0

any

Returns true if map has at least one entry.

fun <K, V> Map<out K, V>.any(): Boolean

Returns true if at least one entry matches the given predicate.

fun <K, V> Map<out K, V>.any(
    predicate: (Entry<K, V>) -> Boolean
): Boolean
Common
JVM
JS
Native
1.0

asIterable

Creates an Iterable instance that wraps the original map returning its entries when being iterated.

fun <K, V> Map<out K, V>.asIterable(): Iterable<Entry<K, V>>
Common
JVM
JS
Native
1.0

asSequence

Creates a Sequence instance that wraps the original map returning its entries when being iterated.

fun <K, V> Map<out K, V>.asSequence(): Sequence<Entry<K, V>>
Common
JVM
JS
Native
1.0

contains

Checks if the map contains the given key.

operator fun <K, V> Map<out K, V>.contains(key: K): Boolean
Common
JVM
JS
Native
1.0

containsKey

Returns true if the map contains the specified key.

fun <K> Map<out K, *>.containsKey(key: K): Boolean
Common
JVM
JS
Native
1.0

containsValue

Returns true if the map maps one or more keys to the specified value.

fun <K, V> Map<K, V>.containsValue(value: V): Boolean
Common
JVM
JS
Native
1.0

count

Returns the number of entries in this map.

fun <K, V> Map<out K, V>.count(): Int

Returns the number of entries matching the given predicate.

fun <K, V> Map<out K, V>.count(
    predicate: (Entry<K, V>) -> Boolean
): Int
Common
JVM
JS
Native
1.0

filter

Returns a new map containing all key-value pairs matching the given predicate.

fun <K, V> Map<out K, V>.filter(
    predicate: (Entry<K, V>) -> Boolean
): Map<K, V>
Common
JVM
JS
Native
1.0

filterKeys

Returns a map containing all key-value pairs with keys matching the given predicate.

fun <K, V> Map<out K, V>.filterKeys(
    predicate: (K) -> Boolean
): Map<K, V>
Common
JVM
JS
Native
1.0

filterNot

Returns a new map containing all key-value pairs not matching the given predicate.

fun <K, V> Map<out K, V>.filterNot(
    predicate: (Entry<K, V>) -> Boolean
): Map<K, V>
Common
JVM
JS
Native
1.0

filterNotTo

Appends all entries not matching the given predicate into the given destination.

fun <K, V, M : MutableMap<in K, in V>> Map<out K, V>.filterNotTo(
    destination: M,
    predicate: (Entry<K, V>) -> Boolean
): M
Common
JVM
JS
Native
1.0

filterTo

Appends all entries matching the given predicate into the mutable map given as destination parameter.

fun <K, V, M : MutableMap<in K, in V>> Map<out K, V>.filterTo(
    destination: M,
    predicate: (Entry<K, V>) -> Boolean
): M
Common
JVM
JS
Native
1.0

filterValues

Returns a map containing all key-value pairs with values matching the given predicate.

fun <K, V> Map<out K, V>.filterValues(
    predicate: (V) -> Boolean
): Map<K, V>
Common
JVM
JS
Native
1.5

firstNotNullOf

Returns the first non-null value produced by transform function being applied to entries of this map in iteration order, or throws NoSuchElementException if no non-null value was produced.

fun <K, V, R : Any> Map<out K, V>.firstNotNullOf(
    transform: (Entry<K, V>) -> R?
): R
Common
JVM
JS
Native
1.5

firstNotNullOfOrNull

Returns the first non-null value produced by transform function being applied to entries of this map in iteration order, or null if no non-null value was produced.

fun <K, V, R : Any> Map<out K, V>.firstNotNullOfOrNull(
    transform: (Entry<K, V>) -> R?
): R?
Common
JVM
JS
Native
1.0

flatMap

Returns a single list of all elements yielded from results of transform function being invoked on each entry of original map.

fun <K, V, R> Map<out K, V>.flatMap(
    transform: (Entry<K, V>) -> Iterable<R>
): List<R>
fun <K, V, R> Map<out K, V>.flatMap(
    transform: (Entry<K, V>) -> Sequence<R>
): List<R>
Common
JVM
JS
Native
1.0

flatMapTo

Appends all elements yielded from results of transform function being invoked on each entry of original map, to the given destination.

fun <K, V, R, C : MutableCollection<in R>> Map<out K, V>.flatMapTo(
    destination: C,
    transform: (Entry<K, V>) -> Iterable<R>
): C
fun <K, V, R, C : MutableCollection<in R>> Map<out K, V>.flatMapTo(
    destination: C,
    transform: (Entry<K, V>) -> Sequence<R>
): C
Common
JVM
JS
Native
1.0

forEach

Performs the given action on each entry.

fun <K, V> Map<out K, V>.forEach(
    action: (Entry<K, V>) -> Unit)
Common
JVM
JS
Native
1.0

get

Returns the value corresponding to the given key, or null if such a key is not present in the map.

operator fun <K, V> Map<out K, V>.get(key: K): V?
Common
JVM
JS
Native
1.0

getOrElse

Returns the value for the given key if the value is present and not null. Otherwise, returns the result of the defaultValue function.

fun <K, V> Map<K, V>.getOrElse(
    key: K,
    defaultValue: () -> V
): V
Common
JVM
JS
Native
1.0

getOrPut

Returns the value for the given key if the value is present and not null. Otherwise, calls the defaultValue function, puts its result into the map under the given key and returns the call result.

fun <K, V> MutableMap<K, V>.getOrPut(
    key: K,
    defaultValue: () -> V
): V
Common
JVM
JS
Native
1.1

getValue

Returns the value for the given key or throws an exception if there is no such key in the map.

fun <K, V> Map<K, V>.getValue(key: K): V
Common
JVM
JS
Native
1.3

ifEmpty

Returns this map if it's not empty or the result of calling defaultValue function if the map is empty.

fun <M, R> M.ifEmpty(
    defaultValue: () -> R
): R where M : Map<*, *>, M : R
Common
JVM
JS
Native
1.0

isNotEmpty

Returns true if this map is not empty.

fun <K, V> Map<out K, V>.isNotEmpty(): Boolean
Common
JVM
JS
Native
1.3

isNullOrEmpty

Returns true if this nullable map is either null or empty.

fun <K, V> Map<out K, V>?.isNullOrEmpty(): Boolean
Common
JVM
JS
Native
1.0

map

Returns a list containing the results of applying the given transform function to each entry in the original map.

fun <K, V, R> Map<out K, V>.map(
    transform: (Entry<K, V>) -> R
): List<R>
Common
JVM
JS
Native
1.0

mapKeys

Returns a new Map with entries having the keys obtained by applying the transform function to each entry in this Map and the values of this map.

fun <K, V, R> Map<out K, V>.mapKeys(
    transform: (Entry<K, V>) -> R
): Map<R, V>
Common
JVM
JS
Native
1.0

mapKeysTo

Populates the given destination map with entries having the keys obtained by applying the transform function to each entry in this Map and the values of this map.

fun <K, V, R, M : MutableMap<in R, in V>> Map<out K, V>.mapKeysTo(
    destination: M,
    transform: (Entry<K, V>) -> R
): M
Common
JVM
JS
Native
1.0

mapNotNull

Returns a list containing only the non-null results of applying the given transform function to each entry in the original map.

fun <K, V, R : Any> Map<out K, V>.mapNotNull(
    transform: (Entry<K, V>) -> R?
): List<R>
Common
JVM
JS
Native
1.0

mapNotNullTo

Applies the given transform function to each entry in the original map and appends only the non-null results to the given destination.

fun <K, V, R : Any, C : MutableCollection<in R>> Map<out K, V>.mapNotNullTo(
    destination: C,
    transform: (Entry<K, V>) -> R?
): C
Common
JVM
JS
Native
1.0

mapTo

Applies the given transform function to each entry of the original map and appends the results to the given destination.

fun <K, V, R, C : MutableCollection<in R>> Map<out K, V>.mapTo(
    destination: C,
    transform: (Entry<K, V>) -> R
): C
Common
JVM
JS
Native
1.0

mapValues

Returns a new map with entries having the keys of this map and the values obtained by applying the transform function to each entry in this Map.

fun <K, V, R> Map<out K, V>.mapValues(
    transform: (Entry<K, V>) -> R
): Map<K, R>
Common
JVM
JS
Native
1.0

mapValuesTo

Populates the given destination map with entries having the keys of this map and the values obtained by applying the transform function to each entry in this Map.

fun <K, V, R, M : MutableMap<in K, in R>> Map<out K, V>.mapValuesTo(
    destination: M,
    transform: (Entry<K, V>) -> R
): M
Common
JVM
JS
Native
1.4

maxByOrNull

Returns the first entry yielding the largest value of the given function or null if there are no entries.

fun <K, V, R : Comparable<R>> Map<out K, V>.maxByOrNull(
    selector: (Entry<K, V>) -> R
): Entry<K, V>?
Common
JVM
JS
Native
1.4

maxOf

Returns the largest value among all values produced by selector function applied to each entry in the map.

fun <K, V> Map<out K, V>.maxOf(
    selector: (Entry<K, V>) -> Double
): Double
fun <K, V> Map<out K, V>.maxOf(
    selector: (Entry<K, V>) -> Float
): Float
fun <K, V, R : Comparable<R>> Map<out K, V>.maxOf(
    selector: (Entry<K, V>) -> R
): R
Common
JVM
JS
Native
1.4

maxOfOrNull

Returns the largest value among all values produced by selector function applied to each entry in the map or null if there are no entries.

fun <K, V> Map<out K, V>.maxOfOrNull(
    selector: (Entry<K, V>) -> Double
): Double?
fun <K, V> Map<out K, V>.maxOfOrNull(
    selector: (Entry<K, V>) -> Float
): Float?
fun <K, V, R : Comparable<R>> Map<out K, V>.maxOfOrNull(
    selector: (Entry<K, V>) -> R
): R?
Common
JVM
JS
Native
1.4

maxOfWith

Returns the largest value according to the provided comparator among all values produced by selector function applied to each entry in the map.

fun <K, V, R> Map<out K, V>.maxOfWith(
    comparator: Comparator<in R>,
    selector: (Entry<K, V>) -> R
): R
Common
JVM
JS
Native
1.4

maxOfWithOrNull

Returns the largest value according to the provided comparator among all values produced by selector function applied to each entry in the map or null if there are no entries.

fun <K, V, R> Map<out K, V>.maxOfWithOrNull(
    comparator: Comparator<in R>,
    selector: (Entry<K, V>) -> R
): R?
Common
JVM
JS
Native
1.7

maxWith

Returns the first entry having the largest value according to the provided comparator.

fun <K, V> Map<out K, V>.maxWith(
    comparator: Comparator<in Entry<K, V>>
): Entry<K, V>
Common
JVM
JS
Native
1.4

maxWithOrNull

Returns the first entry having the largest value according to the provided comparator or null if there are no entries.

fun <K, V> Map<out K, V>.maxWithOrNull(
    comparator: Comparator<in Entry<K, V>>
): Entry<K, V>?
Common
JVM
JS
Native
1.4

minByOrNull

Returns the first entry yielding the smallest value of the given function or null if there are no entries.

fun <K, V, R : Comparable<R>> Map<out K, V>.minByOrNull(
    selector: (Entry<K, V>) -> R
): Entry<K, V>?
Common
JVM
JS
Native
1.4

minOf

Returns the smallest value among all values produced by selector function applied to each entry in the map.

fun <K, V> Map<out K, V>.minOf(
    selector: (Entry<K, V>) -> Double
): Double
fun <K, V> Map<out K, V>.minOf(
    selector: (Entry<K, V>) -> Float
): Float
fun <K, V, R : Comparable<R>> Map<out K, V>.minOf(
    selector: (Entry<K, V>) -> R
): R
Common
JVM
JS
Native
1.4

minOfOrNull

Returns the smallest value among all values produced by selector function applied to each entry in the map or null if there are no entries.

fun <K, V> Map<out K, V>.minOfOrNull(
    selector: (Entry<K, V>) -> Double
): Double?
fun <K, V> Map<out K, V>.minOfOrNull(
    selector: (Entry<K, V>) -> Float
): Float?
fun <K, V, R : Comparable<R>> Map<out K, V>.minOfOrNull(
    selector: (Entry<K, V>) -> R
): R?
Common
JVM
JS
Native
1.4

minOfWith

Returns the smallest value according to the provided comparator among all values produced by selector function applied to each entry in the map.

fun <K, V, R> Map<out K, V>.minOfWith(
    comparator: Comparator<in R>,
    selector: (Entry<K, V>) -> R
): R
Common
JVM
JS
Native
1.4

minOfWithOrNull

Returns the smallest value according to the provided comparator among all values produced by selector function applied to each entry in the map or null if there are no entries.

fun <K, V, R> Map<out K, V>.minOfWithOrNull(
    comparator: Comparator<in R>,
    selector: (Entry<K, V>) -> R
): R?
Common
JVM
JS
Native
1.1

minus

Returns a map containing all entries of the original map except the entry with the given key.

operator fun <K, V> Map<out K, V>.minus(key: K): Map<K, V>

Returns a map containing all entries of the original map except those entries the keys of which are contained in the given keys collection.

operator fun <K, V> Map<out K, V>.minus(
    keys: Iterable<K>
): Map<K, V>

Returns a map containing all entries of the original map except those entries the keys of which are contained in the given keys array.

operator fun <K, V> Map<out K, V>.minus(
    keys: Array<out K>
): Map<K, V>

Returns a map containing all entries of the original map except those entries the keys of which are contained in the given keys sequence.

operator fun <K, V> Map<out K, V>.minus(
    keys: Sequence<K>
): Map<K, V>
Common
JVM
JS
Native
1.1

minusAssign

Removes the entry with the given key from this mutable map.

operator fun <K, V> MutableMap<K, V>.minusAssign(key: K)

Removes all entries the keys of which are contained in the given keys collection from this mutable map.

operator fun <K, V> MutableMap<K, V>.minusAssign(
    keys: Iterable<K>)

Removes all entries the keys of which are contained in the given keys array from this mutable map.

operator fun <K, V> MutableMap<K, V>.minusAssign(
    keys: Array<out K>)

Removes all entries from the keys of which are contained in the given keys sequence from this mutable map.

operator fun <K, V> MutableMap<K, V>.minusAssign(
    keys: Sequence<K>)
Common
JVM
JS
Native
1.7

minWith

Returns the first entry having the smallest value according to the provided comparator.

fun <K, V> Map<out K, V>.minWith(
    comparator: Comparator<in Entry<K, V>>
): Entry<K, V>
Common
JVM
JS
Native
1.4

minWithOrNull

Returns the first entry having the smallest value according to the provided comparator or null if there are no entries.

fun <K, V> Map<out K, V>.minWithOrNull(
    comparator: Comparator<in Entry<K, V>>
): Entry<K, V>?
Common
JVM
JS
Native
1.0

none

Returns true if the map has no entries.

fun <K, V> Map<out K, V>.none(): Boolean

Returns true if no entries match the given predicate.

fun <K, V> Map<out K, V>.none(
    predicate: (Entry<K, V>) -> Boolean
): Boolean
Common
JVM
JS
Native
1.1

onEach

Performs the given action on each entry and returns the map itself afterwards.

fun <K, V, M : Map<out K, V>> M.onEach(
    action: (Entry<K, V>) -> Unit
): M
Common
JVM
JS
Native
1.4

onEachIndexed

Performs the given action on each entry, providing sequential index with the entry, and returns the map itself afterwards.

fun <K, V, M : Map<out K, V>> M.onEachIndexed(
    action: (index: Int, Entry<K, V>) -> Unit
): M
Common
JVM
JS
Native
1.0

orEmpty

Returns the Map if its not null, or the empty Map otherwise.

fun <K, V> Map<K, V>?.orEmpty(): Map<K, V>
Common
JVM
JS
Native
1.0

plus

Creates a new read-only map by replacing or adding an entry to this map from a given key-value pair.

operator fun <K, V> Map<out K, V>.plus(
    pair: Pair<K, V>
): Map<K, V>

Creates a new read-only map by replacing or adding entries to this map from a given collection of key-value pairs.

operator fun <K, V> Map<out K, V>.plus(
    pairs: Iterable<Pair<K, V>>
): Map<K, V>

Creates a new read-only map by replacing or adding entries to this map from a given array of key-value pairs.

operator fun <K, V> Map<out K, V>.plus(
    pairs: Array<out Pair<K, V>>
): Map<K, V>

Creates a new read-only map by replacing or adding entries to this map from a given sequence of key-value pairs.

operator fun <K, V> Map<out K, V>.plus(
    pairs: Sequence<Pair<K, V>>
): Map<K, V>

Creates a new read-only map by replacing or adding entries to this map from another map.

operator fun <K, V> Map<out K, V>.plus(
    map: Map<out K, V>
): Map<K, V>
Common
JVM
JS
Native
1.0

plusAssign

Appends or replaces the given pair in this mutable map.

operator fun <K, V> MutableMap<in K, in V>.plusAssign(
    pair: Pair<K, V>)

Appends or replaces all pairs from the given collection of pairs in this mutable map.

operator fun <K, V> MutableMap<in K, in V>.plusAssign(
    pairs: Iterable<Pair<K, V>>)

Appends or replaces all pairs from the given array of pairs in this mutable map.

operator fun <K, V> MutableMap<in K, in V>.plusAssign(
    pairs: Array<out Pair<K, V>>)

Appends or replaces all pairs from the given sequence of pairs in this mutable map.

operator fun <K, V> MutableMap<in K, in V>.plusAssign(
    pairs: Sequence<Pair<K, V>>)

Appends or replaces all entries from the given map in this mutable map.

operator fun <K, V> MutableMap<in K, in V>.plusAssign(
    map: Map<K, V>)
Common
JVM
JS
Native
1.0

putAll

Puts all the given pairs into this MutableMap with the first component in the pair being the key and the second the value.

fun <K, V> MutableMap<in K, in V>.putAll(
    pairs: Array<out Pair<K, V>>)

Puts all the elements of the given collection into this MutableMap with the first component in the pair being the key and the second the value.

fun <K, V> MutableMap<in K, in V>.putAll(
    pairs: Iterable<Pair<K, V>>)

Puts all the elements of the given sequence into this MutableMap with the first component in the pair being the key and the second the value.

fun <K, V> MutableMap<in K, in V>.putAll(
    pairs: Sequence<Pair<K, V>>)
Common
JVM
JS
Native
1.0

remove

Removes the specified key and its corresponding value from this map.

fun <K, V> MutableMap<out K, V>.remove(key: K): V?
Common
JVM
JS
Native
1.0

set

Allows to use the index operator for storing values in a mutable map.

operator fun <K, V> MutableMap<K, V>.set(key: K, value: V)
Common
JVM
JS
Native
1.0

setValue

Stores the value of the property for the given object in this mutable map.

operator fun <V> MutableMap<in String, in V>.setValue(
    thisRef: Any?,
    property: KProperty<*>,
    value: V)
Common
JVM
JS
Native
1.0

toList

Returns a List containing all key-value pairs.

fun <K, V> Map<out K, V>.toList(): List<Pair<K, V>>
Common
JVM
JS
Native
1.1

toMap

Returns a new read-only map containing all key-value pairs from the original map.

fun <K, V> Map<out K, V>.toMap(): Map<K, V>

Populates and returns the destination mutable map with key-value pairs from the given map.

fun <K, V, M : MutableMap<in K, in V>> Map<out K, V>.toMap(
    destination: M
): M
Common
JVM
JS
Native
1.1

toMutableMap

Returns a new mutable map containing all key-value pairs from the original map.

fun <K, V> Map<out K, V>.toMutableMap(): MutableMap<K, V>
Common
JVM
JS
Native
1.0

withDefault

Returns a wrapper of this read-only map, having the implicit default value provided with the specified function defaultValue.

fun <K, V> Map<K, V>.withDefault(
    defaultValue: (key: K) -> V
): Map<K, V>

Returns a wrapper of this mutable map, having the implicit default value provided with the specified function defaultValue.

fun <K, V> MutableMap<K, V>.withDefault(
    defaultValue: (key: K) -> V
): MutableMap<K, V>

Inheritors

LinkedHashMap

Hash table based implementation of the MutableMap interface, which additionally preserves the insertion order of entries during the iteration.

Common
1.0
class LinkedHashMap<K, V> : MutableMap<K, V>
JVM
1.1
typealias LinkedHashMap<K, V> = LinkedHashMap<K, V>
JS
1.1
open class LinkedHashMap<K, V> : 
    HashMap<K, V>,
    MutableMap<K, V>
Native
1.3
typealias LinkedHashMap<K, V> = HashMap<K, V>