hashMapOf() в Kotlin — функции и примеры

hashMapOf() — это функция класса HashMap в Kotlin. Она возвращает новый HashMap с указанным содержимым. Содержит пары данных в виде ключа и значения. HashMap — это изменяемая коллекция, которая обеспечивает функции чтения и записи.

Синтаксис функции hashMapOf()

inline fun <K, V> hashMapOf(): HashMap<K, V>(source)
fun <K, V> hashMapOf(vararg pairs: Pair<K, V>): HashMap<K, V>(source)

Функции класса HashMap в Kotlin 

Функция Описание
open fun put(key: K, value: V): V? Помещает указанный ключ и значение на карту
open operator fun get(key: K): V? Она возвращает значение указанного ключа или ноль, если такой указанный ключ недоступен на карте.
open fun containsKey(key: K): Boolean Возвращает true, если карта содержит указанный ключ.
open fun containsValue(value: V): Boolean Возвращает true, если карта сопоставляет один или несколько ключей с указанным значением.
open fun clear() Она удаляет все элементы с карты.
open fun remove(key: K): V? Удаляет указанный ключ и соответствующее ему значение с карты.

hashMapOf() — Пример 1

Функция hashMapOf() может быть объявлена как различные общие типы, такие как hashMapOf<Int, String>(), hashMapOf<String, String>(), hashMapOf<Any, Any>() и т. д.

fun main(args: Array<String>){

    val intMap: HashMap<Int, String> = hashMapOf<Int,String>(1 to "Ashu",4 to "Rohan", 2 to "Ajeet", 3 to "Vijay")

    val stringMap: HashMap<String,String> = hashMapOf<String,String>("name" to "Ashu")
    stringMap.put("city", "Delhi")
    stringMap.put("department", "Development")
    stringMap.put("hobby", "Playing")
    val anyMap: HashMap<Any, Any> = hashMapOf<Any, Any>(1 to "Ashu", "name" to "Rohsan", 2 to 200)
    println(".....traverse intMap........")
    for(key in intMap.keys){
        println(intMap[key])
    }
    println("......traverse stringMap.......")
    for(key in stringMap.keys){
        println(stringMap[key])
    }
    println("......traverse anyMap.......")
    for(key in anyMap.keys){
        println(anyMap[key])
    }
}

Выход:

.....traverse intMap........
Ashu
Ajeet
Vijay
Rohan
......traverse stringMap.......
Ashu
Development
Delhi
Playing
......traverse anyMap.......
Rohsan
Ashu
200

Пример 2 — containsKey()

Функция containsKey() возвращает true, если она содержит ключ упоминания в HashMap, в противном случае возвращает false.

fun main(args: Array<String>){

    val stringMap: HashMap<String,String> = hashMapOf<String,String>()
    stringMap.put("name", "Ashu")
    stringMap.put("city", "Delhi")
    stringMap.put("department", "Development")
    stringMap.put("hobby", "Playing")

    println("......traverse stringMap.......")
    for(key in stringMap.keys){
        println("Key = ${key} , value = ${stringMap[key]}")
    }

    println("......stringMap.containsKey(\"name\").......")
    println(stringMap.containsKey("name"))
}

Выход:

......traverse stringMap.......
Key = city , value = Delhi
Key = name , value = Ashu
Key = department , value = Development
Key = hobby , value = Playing
......stringMap.containsKey("name").......
true

Пример 3 — containsValue()

Функция containsValue() возвращает true, если она содержит значение упоминания в HashMap, в противном случае возвращает false.

fun main(args: Array<String>){

    val stringMap: HashMap<String,String> = hashMapOf<String,String>()
    stringMap.put("name", "Ashu")
    stringMap.put("city", "Delhi")
    stringMap.put("department", "Development")
    stringMap.put("hobby", "Playing")

    println("......traverse stringMap.......")
    for(key in stringMap.keys){
        println("Key = ${key} , value = ${stringMap[key]}")
    }

    println(".......stringMap.containsValue(\"Delhi\")......")
    println(stringMap.containsValue("Delhi"))
    println(stringMap.containsValue("Mumbai"))
}

Выход:

......traverse stringMap.......
Key = city , value = Delhi
Key = name , value = Ashu
Key = department , value = Development
Key = hobby , value = Playing
.......stringMap.containsValue("Delhi")......
true
false

Пример 4 — contains()

Функция contains() возвращает true, если она содержит ключ упоминания в HashMap, иначе возвращает false.

fun main(args: Array<String>){

    val stringMap: HashMap<String,String> = hashMapOf<String,String>()
    stringMap.put("name", "Ashu")
    stringMap.put("city", "Delhi")
    stringMap.put("department", "Development")
    stringMap.put("hobby", "Playing")

    println("......traverse stringMap.......")
    for(key in stringMap.keys){
        println("Key = ${key} , value = ${stringMap[key]}")
    }

    println("......stringMap.contains(\"city\").......")
    println(stringMap.contains("city"))
}

Выход:

......traverse stringMap.......
Key = city , value = Delhi
Key = name , value = Ashu
Key = department , value = Development
Key = hobby , value = Playing
......stringMap.contains("city").......
true

Пример 5 — replace(key, value)

Функция replace(key, value) используется для замены существующего значения по указанному ключу новым указанным значением. Функция replace(key, value) возвращает замененное значение.

fun main(args: Array<String>){

    val stringMap: HashMap<String,String> = hashMapOf<String,String>()
    stringMap.put("name", "Ashu")
    stringMap.put("city", "Delhi")
    stringMap.put("department", "Development")
    stringMap.put("hobby", "Playing")

    println("......traverse stringMap.......")
    for(key in stringMap.keys){
        println("Key = ${key} , value = ${stringMap[key]}")
    }

    println("......stringMap.replace(\"city\",\"Mumbai\").......")
    println(stringMap.replace("city","Mumbai"))
    println("......traverse stringMap after stringMap.replace(\"city\",\"Mumbai\").......")
    for(key in stringMap.keys){
        println("Key = ${key} , value = ${stringMap[key]}")
    }
}

Выход:

......traverse stringMap.......
Key = city , value = Delhi
Key = name , value = Ashu
Key = department , value = Development
Key = hobby , value = Playing
......stringMap.replace("city","Mumbai").......
Delhi
......traverse stringMap after stringMap.replace("city","Mumbai").......
Key = city , value = Mumbai
Key = name , value = Ashu
Key = department , value = Development
Key = hobby , value = Playing

Пример 6 — replace(key, oldValue, newValue)

Функция replace(key, oldValue, newValue) используется для замены существующего старого значения по указанному ключу новым указанным значением. Функция replace(key, newValue, oldValue) возвращает true, если она заменяет старое значение новым, иначе возвращает false.

fun main(args: Array<String>){

    val stringMap: HashMap<String,String> = hashMapOf<String,String>()
    stringMap.put("name", "Ashu")
    stringMap.put("city", "Delhi")
    stringMap.put("department", "Development")
    stringMap.put("hobby", "Playing")

    println("......traverse stringMap.......")
    for(key in stringMap.keys){
        println("Key = ${key} , value = ${stringMap[key]}")
    }

    println(".......stringMap.replace(\"department\", \"Development\",\"Management\")......")
    println(stringMap.replace("department", "Development","Management"))
    println("......traverse stringMap after stringMap.replace(\"department\", \"Development\",\"Management\").......")
    for(key in stringMap.keys){
        println("Key = ${key} , value = ${stringMap[key]}")
    }
}

Выход:

......traverse stringMap.......
Key = city , value = Delhi
Key = name , value = Ashu
Key = department , value = Development
Key = hobby , value = Playing
.......stringMap.replace("department", "Development","Management")......
true
......traverse stringMap after stringMap.replace("department", "Development","Management").......
Key = city , value = Delhi
Key = name , value = Ashu
Key = department , value = Management
Key = hobby , value = Playing

Пример 7 — hashMapOf().size, hashMapOf().key

Свойство size функции hashMapOf() возвращает общий размер HashMap, а свойство key возвращает все ключи HashMap.

fun main(args: Array<String>){

    val stringMap: HashMap<String,String> = hashMapOf<String,String>()
    stringMap.put("name", "Ashu")
    stringMap.put("city", "Delhi")
    stringMap.put("department", "Development")
    stringMap.put("hobby", "Playing")

    println("......traverse stringMap.......")
    for(key in stringMap.keys){
        println("Key = ${key} , value = ${stringMap[key]}")
    }

    println(".....stringMap.size........")
    println(stringMap.size)

    println(".......stringMap.keys......")
    println(stringMap.keys)
}

Выход:

......traverse stringMap.......
Key = city , value = Delhi
Key = name , value = Ashu
Key = department , value = Development
Key = hobby , value = Playing
.....stringMap.size........
4
.......stringMap.keys......
[city, name, department, hobby]

Пример 8 — getValue(key), getOrDefault(key, defaultValue)

Функция getValue() возвращает значение указанного ключа HashMap. Принимая во внимание, что функция getOrDefault() возвращает соответствующее значение указанного ключа, если он существует в HashMap, или возвращает указанное значение по умолчанию, если такого ключа нет в HashMap.

fun main(args: Array<String>){

    val stringMap: HashMap<String,String> = hashMapOf<String,String>()
    stringMap.put("name", "Ashu")
    stringMap.put("city", "Delhi")
    stringMap.put("department", "Development")
    stringMap.put("hobby", "Playing")

    println("......traverse stringMap.......")
    for(key in stringMap.keys){
        println("Key = ${key} , value = ${stringMap[key]}")
    }

    println(".......stringMap.getValue(\"department\")......")
    println(stringMap.getValue("department"))

    println(".......stringMap.getOrDefault(\"name\", \"Default Value\")......")
    println(stringMap.getOrDefault("name", "Default Value"))
}

Выход:

......traverse stringMap.......
Key = city , value = Delhi
Key = name , value = Ashu
Key = department , value = Development
Key = hobby , value = Playing
.......stringMap.getValue("department")......
Development
.......stringMap.getOrDefault("name", "Default Value")......
Ashu

Пример 9 — remove(key)

Функция remove(key) используется для удаления указанного ключа вместе с соответствующим значением. Функция remove(key) возвращает удаленное значение.

fun main(args: Array<String>){

    val stringMap: HashMap<String,String> = hashMapOf<String,String>()
    stringMap.put("name", "Ashu")
    stringMap.put("city", "Delhi")
    stringMap.put("department", "Development")
    stringMap.put("hobby", "Playing")

    println("......traverse stringMap.......")
    for(key in stringMap.keys){
        println("Key = ${key} , value = ${stringMap[key]}")
    }

        println("......stringMap.remove(\"city\").......")
        println(stringMap.remove("city"))
        println("......traverse stringMap after stringMap.remove(\"city\").......")
        for(key in stringMap.keys){
        println("Key = ${key} , value = ${stringMap[key]}")
    }
}

Выход:

......traverse stringMap.......
Key = city , value = Delhi
Key = name , value = Ashu
Key = department , value = Development
Key = hobby , value = Playing
......stringMap.remove("city").......
Delhi
......traverse stringMap after stringMap.remove("city").......
Key = name , value = Ashu
Key = department , value = Development
Key = hobby , value = Playing

Пример 10 — remove(key, value)

Функция remove(key, value) используется для удаления указанного ключа вместе с соответствующим значением. Функция remove(key, value) возвращает true, если она удаляет указанный ключ вместе с его значением, иначе возвращает false.

fun main(args: Array<String>){

    val stringMap: HashMap<String,String> = hashMapOf<String,String>()
    stringMap.put("name", "Ashu")
    stringMap.put("city", "Delhi")
    stringMap.put("department", "Development")
    stringMap.put("hobby", "Playing")

    println("......traverse stringMap.......")
    for(key in stringMap.keys){
        println("Key = ${key} , value = ${stringMap[key]}")
    }
        println(".......stringMap.remove(\"hobby\",\"Playing\")......")
        println(stringMap.remove("hobby","Playing"))
    println("......traverse stringMap after stringMap.remove(\"hobby\",\"Playing\").......")
    for(key in stringMap.keys){
        println("Key = ${key} , value = ${stringMap[key]}")
    }
}

Выход:

......traverse stringMap.......
Key = city , value = Delhi
Key = name , value = Ashu
Key = department , value = Development
Key = hobby , value = Playing
.......stringMap.remove("hobby","Playing")......
true
......traverse stringMap after stringMap.remove("hobby","Playing").......
Key = city , value = Delhi
Key = name , value = Ashu
Key = department , value = Development

Пример 11 — set(key, value)

Функция set(key, value) используется для установки заданного значения по указанному ключу, если он существует. Если ключ не существует в HashMap, он добавит новый ключ и установит соответствующее ему значение.

fun main(args: Array<String>){

    val stringMap: HashMap<String,String> = hashMapOf<String,String>()
    stringMap.put("name", "Ashu")
    stringMap.put("city", "Delhi")
    stringMap.put("department", "Development")
    stringMap.put("hobby", "Playing")

    println("......traverse stringMap.......")
    for(key in stringMap.keys){
        println("Key = ${key} , value = ${stringMap[key]}")
    }

    stringMap.set("name","Ashutosh")
    stringMap.set("skill","Kotlin")
    println("......traverse stringMap after stringMap.set(\"name\",\"Ashutosh\") and   stringMap.set(\"skill\",\"Kotlin\").......")
    for(key in stringMap.keys){
        println("Key = ${key} , value = ${stringMap[key]}")
    }
}

Выход:

......traverse stringMap.......
Key = city , value = Delhi
Key = name , value = Ashu
Key = department , value = Development
Key = hobby , value = Playing
......stringMap.set("name","Ashutosh").......
......traverse stringMap after stringMap.set("name","Ashutosh") and stringMap.set("skill","Kotlin").......
Key = city , value = Delhi
Key = skill , value = Kotlin
Key = name , value = Ashutosh
Key = department , value = Development
Key = hobby , value = Playing

Пример 12 — clear()

Функция clear() используется для очистки (или удаления) всей пары ключ-значение из HashMap.

fun main(args: Array<String>){

    val stringMap: HashMap<String,String> = hashMapOf<String,String>()
    stringMap.put("name", "Ashu")
    stringMap.put("city", "Delhi")
    stringMap.put("department", "Development")
    stringMap.put("hobby", "Playing")

    println("......traverse stringMap.......")
    for(key in stringMap.keys){
        println("Key = ${key} , value = ${stringMap[key]}")
    }

        println("......stringMap.clear().......")
        println(stringMap.clear())
        println(stringMap)

}

Выход:

......traverse stringMap.......
Key = city , value = Delhi
Key = name , value = Ashu
Key = department , value = Development
Key = hobby , value = Playing
......stringMap.clear().......
kotlin.Unit
{}

Оцените статью