Maps help you store pairs of related information, like a name and a phone number. Using mapOf and mutableMapOf lets you create these pairs easily.
Map creation (mapOf, mutableMapOf) in Kotlin
val mapName = mapOf(key1 to value1, key2 to value2) val mutableMapName = mutableMapOf(key1 to value1, key2 to value2)
mapOf creates a map you cannot change later (immutable).
mutableMapOf creates a map you can add or remove pairs from (mutable).
val colors = mapOf("red" to "#FF0000", "green" to "#00FF00")
val userInfo = mutableMapOf("name" to "Alice", "age" to 30)
userInfo["age"] = 31
This program shows how to create an immutable map of country capitals and a mutable map of game scores. It prints the capital of France, then shows the scores before and after updating.
fun main() { val capitals = mapOf("France" to "Paris", "Japan" to "Tokyo") println("Capital of France: ${capitals["France"]}") val scores = mutableMapOf("Alice" to 10, "Bob" to 8) println("Initial scores: $scores") scores["Alice"] = 15 scores["Charlie"] = 12 println("Updated scores: $scores") }
Immutable maps cannot be changed after creation; trying to add or remove items will cause an error.
Mutable maps let you add, update, or remove pairs anytime.
Use the to keyword to create pairs inside the map.
mapOf creates a fixed map you cannot change.
mutableMapOf creates a map you can change later.
Maps store pairs of keys and values for easy lookup.
Practice
mapOf create in Kotlin?Solution
Step 1: Understand
mapOfpurposemapOfcreates a map with key-value pairs that cannot be modified after creation.Step 2: Compare with other map types
mutableMapOfallows changes, butmapOfdoes not.Final Answer:
A fixed map that cannot be changed after creation -> Option CQuick Check:
mapOf= fixed map [OK]
- Confusing mapOf with mutableMapOf
- Thinking mapOf creates an empty map
- Assuming mapOf allows adding new entries
Solution
Step 1: Identify correct syntax for mutableMapOf
The correct syntax usesmutableMapOfwith pairs usingtokeyword.Step 2: Check each option
val map = mutableMapOf("a" to 1, "b" to 2) usesmutableMapOfandtocorrectly. val map = mapOf("a" -> 1, "b" -> 2) uses wrong arrow->. val map = mutableMapOf("a" = 1, "b" = 2) uses=which is invalid here. val map = mapOf("a" to 1, "b" to 2) usesmapOfwhich creates an immutable map.Final Answer:
val map = mutableMapOf("a" to 1, "b" to 2) -> Option AQuick Check:
mutableMapOf + to = correct syntax [OK]
- Using -> instead of to for pairs
- Using = inside mapOf or mutableMapOf
- Confusing mapOf and mutableMapOf
val map = mapOf("x" to 10, "y" to 20)
println(map["x"])
println(map["z"])Solution
Step 1: Access existing key "x"
map["x"] returns 10 because "x" is a key with value 10.Step 2: Access non-existing key "z"
map["z"] returns null because "z" is not in the map.Final Answer:
10\nnull -> Option BQuick Check:
Existing key returns value, missing key returns null [OK]
- Expecting 0 instead of null for missing key
- Confusing values of different keys
- Assuming map is mutable and can add keys
val map = mapOf("a" to 1)
map["b"] = 2Solution
Step 1: Understand mapOf immutability
mapOfcreates an immutable map that cannot be changed after creation.Step 2: Adding entries to immutable map causes error
Trying to assign a new key-value pair withmap["b"] = 2causes a compile-time error because the map is immutable.Final Answer:
mapOf creates an immutable map, so you cannot add new entries -> Option AQuick Check:
Immutable map cannot be changed [OK]
- Trying to add entries to mapOf
- Using wrong syntax for adding entries
- Confusing mutableMapOf and mapOf
Solution
Step 1: Choose a mutable map to allow updates
Since scores need to be updated,mutableMapOfis required.Step 2: Use correct method to update value
Assigning withscores["Alice"] = 95correctly updates the value in a mutable map.Step 3: Check other options for errors
val scores = mapOf("Alice" to 90, "Bob" to 85) scores["Alice"] = 95 uses immutable map and tries to update, causing error. val scores = mapOf("Alice" to 90, "Bob" to 85) scores.put("Alice", 95) tries to useputon immutable map, error. val scores = mutableMapOf("Alice" to 90, "Bob" to 85) scores.add("Alice", 95) uses non-existentaddmethod.Final Answer:
val scores = mutableMapOf("Alice" to 90, "Bob" to 85) scores["Alice"] = 95 -> Option DQuick Check:
mutableMapOf + assignment updates map [OK]
- Using mapOf when updates are needed
- Trying to use put on immutable map
- Using add method which does not exist
Ready to prove it?
Pass the test and this pattern moves unknown
