Kotlin Hashmap

19 Aug, 2019
Kotlin HashMap is a collection which contains pairs of object. Kotlin Hash Table based implementation of the MutableMap interface. It stores the data in the form of key and value pair. Map keys are unique and the map holds only one value for each key. It is represented as HashMap<key, value> or HashMap<K, V>.
The hash table based implementation of HashMap does not guarantees about the order of specified data of key, value and entries of collections.
Kotlin HashMap provides 4 constructors and access modifier of each is public:
HashMap() : It is the default constructor which constructs an empty HashMap instance.
HashMap(initialCapacity: Int, loadFactor: Float = 0f) : It is used to construct a HashMap of specified capacity. If initialCapacity and loadFactor isn’t being used then both will get ignored.
HashMap(initialCapacity: Int) : It is used to construct a HashMap of specified capacity. If initialCapacity isn’t being used then it will get ignored.
HashMap(original: Map <out K, V> ) : It creates instance of HashMap with same mappings as specified map.
Kotlin program of using functions HashMap(), HashMap(original: Map), Traversing hashmap, HashMap.get() –
fun main(args: Array<String>) {    //A simple example of HashMap class define    // with empty "HashMap of <String, Int>"    var hashMap : HashMap<String, Int>            = HashMap<String, Int> ()      //printing the Empty hashMap    printHashMap(hashMap)      //adding elements to the hashMap using    // put() function    hashMap.put("IronMan" , 3000)    hashMap.put("Thor" , 100)    hashMap.put("SpiderMan" , 1100)    hashMap.put("NickFury" , 1200)    hashMap.put("HawkEye" , 1300)      //printing the non-Empty hashMap    printHashMap(hashMap)    //using the overloaded print function of    //Kotlin language to get the same results    println("hashMap : " + hashMap + "\n")      //hashMap traversal using a for loop    for(key in hashMap.keys){        println("Element at key $key : ${hashMap[key]}")    }      //creating another hashMap object with    // the previous version of hashMap object    var secondHashMap : HashMap<String, Int>            = HashMap<String, Int> (hashMap)      println("\n" + "Second HashMap : ")    for(key in secondHashMap.keys){        //using hashMap.get() function to fetch the values        println("Element at key $key : ${hashMap.get(key)}")    }      //this will clear the whole map and make it empty    println("hashMap.clear()")    hashMap.clear()      println("After Clearing : " + hashMap)    }  //function to print the hashMapfun printHashMap(hashMap : HashMap<String, Int>){    // isEmpty() function to check whether    // the hashMap is empty or not    if(hashMap.isEmpty()){        println("hashMap is empty")    }else{        println("hashMap : " + hashMap)    }}
Output :
hashMap is empty : {}

hashMap : {Thor=100, HawkEye=1300, NickFury=1200, IronMan=3000, SpiderMan=1100}
hashMap : {Thor=100, HawkEye=1300, NickFury=1200, IronMan=3000, SpiderMan=1100}

Element at key Thor : 100
Element at key HawkEye : 1300
Element at key NickFury : 1200
Element at key IronMan : 3000
Element at key SpiderMan : 1100

secondHashMap : 
Element at key Thor : 100
Element at key HawkEye : 1300
Element at key IronMan : 3000
Element at key NickFury : 1200
Element at key SpiderMan : 1100

hashMap.clear()
After Clearing : {}

 
Kotlin program of using HashMap initial capacity, HashMap.size –
fun main(args: Array<String>) {    //HashMap can also be initialize    // with its initial capacity.    //The capacity can be changed by    // adding and replacing its element.    var hashMap : HashMap<String, Int>            = HashMap<String, Int> (4)      //adding elements to the hashMap using put() function    hashMap.put("IronMan" , 3000)    hashMap.put("Thor" , 100)    hashMap.put("SpiderMan" , 1100)    hashMap.put("NickFury" , 1200)      for(key in hashMap.keys) {        println("Element at key $key : ${hashMap[key]}")    }    //returns the size of hashMap    println("\n" + "hashMap.size : " + hashMap.size )      //adding a new element in the hashMap    hashMap["BlackWidow"] = 1000;    println("hashMap.size : " + hashMap.size + "\n")      for(key in hashMap.keys) {        println("Element at key $key : ${hashMap[key]}")    }}
Output:
Element at key Thor : 100
Element at key IronMan : 3000
Element at key NickFury : 1200
Element at key SpiderMan : 1100

hashMap.size : 4
hashMap.size : 5

Element at key Thor : 100
Element at key BlackWidow : 1000
Element at key IronMan : 3000
Element at key NickFury : 1200
Element at key SpiderMan : 1100

 
Kotlin program of using functions HashMap.get(key), HashMap.replace(), HashMap.put() –
fun main(args: Array<String>) {    var hashMap : HashMap<String, Int>             = HashMap<String, Int> ()      //adding elements to the hashMap     // using put() function    hashMap.put("IronMan" , 3000)    hashMap.put("Thor" , 100)    hashMap.put("SpiderMan" , 1100)    hashMap.put("Cap" , 1200)      for(key in hashMap.keys) {        println("Element at key $key : ${hashMap[key]}")    }      //the hashMap's elements can be accessed like this    println("\nhashMap[\"IronMan\"] : "            + hashMap["IronMan"])    hashMap["Thor"] = 2000    println("hashMap.get(\"Thor\") : "             + hashMap.get("Thor") + "\n")      //replacing some values    hashMap.replace("Cap" , 999);    hashMap.put("Thor" , 2000);      println("hashMap.replace(\"Cap\" , 999)" +            " hashMap.replace(\"Thor\" , 2000)) :")      for(key in hashMap.keys) {        println("Element at key $key : ${hashMap[key]}")    }}
Output:
Element at key Thor : 100
Element at key Cap : 1200
Element at key IronMan : 3000
Element at key SpiderMan : 1100

hashMap["IronMan"] : 3000
hashMap.get("Thor") : 2000

hashMap.replace("Cap", 999) hashMap.replace("Thor", 2000)) :
Element at key Thor : 2000
Element at key Cap : 999
Element at key IronMan : 3000
Element at key SpiderMan : 1100

Kotlin HashMap provides constant time or O(1) complexity for basic operations like get and put, if hash function is properly written and it disperses the elements properly. In case of searching in the HashMap containsKey() is just a get() that throws away the retrieved value, it’s O(1) (assuming the hash function works properly).
Boolean containsKey(key: K): It returns true if map contains specifies key.
Boolean containsValue(value: V): It returns true if map maps one of more keys to specified value.
void clear(): It removes all elements from map.
remove(key: K): It removes the specified key and its corresponding value from map
Hash
Kotlin Collections
Picked
Kotlin
Hash
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.