📖 Scenario: You are organizing a small party and need to keep track of the guests who will attend.
🎯 Goal: Create a list of guests using listOf and then create a mutable list using mutableListOf to add more guests later.
📋 What You'll Learn
Create an immutable list called guests with exactly these names: "Alice", "Bob", "Charlie"
Create a mutable list called moreGuests starting with the same names as guests
Add the name "Diana" to the moreGuests list
Print the moreGuests list to show all guests
💡 Why This Matters
🌍 Real World
Lists are used everywhere to keep track of groups of items, like guests at a party, tasks to do, or products in a store.
💼 Career
Knowing how to create and modify lists is a basic skill for any programmer, useful in almost all software development jobs.
Progress0 / 4 steps
1
Create an immutable list of guests
Create an immutable list called guests using listOf with these exact names: "Alice", "Bob", "Charlie".
Kotlin
Hint
Use val guests = listOf("Alice", "Bob", "Charlie") to create the list.
2
Create a mutable list from the immutable list
Create a mutable list called moreGuests using mutableListOf and initialize it with the contents of the guests list.
Kotlin
Hint
Use mutableListOf().apply { addAll(guests) } to copy the guests list.
3
Add a new guest to the mutable list
Add the name "Diana" to the moreGuests mutable list using the add method.
Kotlin
Hint
Use moreGuests.add("Diana") to add the new guest.
4
Print the final list of guests
Print the moreGuests list to show all the guests including the newly added one.
Kotlin
Hint
Use println(moreGuests) to print the list.
Practice
(1/5)
1. Which Kotlin function creates a list that cannot be changed after it is created?
easy
A. listOf
B. mutableListOf
C. arrayListOf
D. setOf
Solution
Step 1: Understand listOf behavior
listOf creates a fixed list that cannot be changed after creation.
Step 2: Compare with mutableListOf
mutableListOf creates a list that can be changed (add/remove items).
Final Answer:
listOf -> Option A
Quick Check:
Fixed list = listOf [OK]
Hint: Use listOf for fixed lists, mutableListOf for changeable lists [OK]
Common Mistakes:
Confusing mutableListOf as fixed list
Thinking arrayListOf is immutable
Using setOf which creates a set, not a list
2. Which of the following is the correct syntax to create a mutable list of integers with values 1, 2, and 3?
easy
A. val list = listOf(1, 2, 3)
B. val list = mutableListOf(1, 2, 3)
C. val list = mutableList(1, 2, 3)
D. val list = list(1, 2, 3)
Solution
Step 1: Identify correct function name
The correct function to create a mutable list is mutableListOf.
Step 2: Check syntax correctness
Options C and D use invalid function names. val list = listOf(1, 2, 3) creates an immutable list.
Final Answer:
val list = mutableListOf(1, 2, 3) -> Option B
Quick Check:
Mutable list syntax = mutableListOf(...) [OK]
Hint: Remember mutableListOf has 'Of' at the end [OK]
Common Mistakes:
Using listOf instead of mutableListOf for mutable lists
Misspelling mutableListOf as mutableList
Using list() which does not exist
3. What will be the output of this Kotlin code?
val list = listOf("apple", "banana", "cherry")
println(list[1])
medium
A. banana
B. IndexOutOfBoundsException
C. cherry
D. apple
Solution
Step 1: Understand list indexing
Kotlin lists use zero-based indexing, so index 1 refers to the second item.
Step 2: Identify the item at index 1
The list is ["apple", "banana", "cherry"], so index 1 is "banana".
Final Answer:
banana -> Option A
Quick Check:
Index 1 = second item = banana [OK]
Hint: Remember list indexes start at 0 in Kotlin [OK]
Common Mistakes:
Thinking index 1 is the first item
Expecting an error for valid index
Confusing listOf with mutableListOf output
4. What is wrong with this Kotlin code?
val list = listOf(1, 2, 3)
list.add(4)
medium
A. add() method requires a mutableListOf list
B. Syntax error in listOf declaration
C. listOf creates an immutable list; add() is not allowed
D. No error; code runs fine
Solution
Step 1: Check list type
listOf creates an immutable (read-only) list.
Step 2: Understand add() method
The add() method is only available on mutable lists, not on immutable lists.
Final Answer:
listOf creates an immutable list; add() is not allowed -> Option C
Quick Check:
Immutable list cannot add items [OK]
Hint: Use mutableListOf to add or remove items [OK]
Common Mistakes:
Trying to add to listOf list
Ignoring immutability of listOf
Assuming add() works on all lists
5. You want to create a list of strings that you can add items to later. Which Kotlin code correctly creates this list and adds "orange" to it?
hard
A. val fruits = mutableListOf("apple", "banana")
fruits = fruits + "orange"
B. val fruits = listOf("apple", "banana")
fruits.add("orange")
C. val fruits = listOf("apple", "banana")
fruits += "orange"
D. val fruits = mutableListOf("apple", "banana")
fruits.add("orange")
Solution
Step 1: Choose a mutable list
To add items later, the list must be mutable, so use mutableListOf.
Step 2: Use add() method correctly
Calling add("orange") on a mutable list adds the item successfully.
Step 3: Check other options
val fruits = listOf("apple", "banana")
fruits.add("orange") tries to add to immutable list (error). val fruits = listOf("apple", "banana")
fruits += "orange" uses += on immutable list (creates new list but does not modify original). val fruits = mutableListOf("apple", "banana")
fruits = fruits + "orange" tries to reassign val which is not allowed.
Final Answer:
val fruits = mutableListOf("apple", "banana")
fruits.add("orange") -> Option D
Quick Check:
Mutable list + add() = correct way [OK]
Hint: Use mutableListOf and add() to change list after creation [OK]
Common Mistakes:
Adding to immutable list
Trying to reassign val variable
Using += on immutable list expecting mutation
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.