An immutable interface provides read-only access to data. It does not allow changes to the data it exposes.
Click to reveal answer
beginner
What does a mutable interface allow you to do?
A mutable interface allows you to change or update the data it exposes, such as adding, removing, or modifying elements.
Click to reveal answer
beginner
Give an example of a Kotlin immutable interface.
List<T> is an immutable interface in Kotlin. It allows reading elements but not changing the list.
Click to reveal answer
beginner
Give an example of a Kotlin mutable interface.
MutableList<T> is a mutable interface in Kotlin. It allows adding, removing, and updating elements in the list.
Click to reveal answer
intermediate
Why use immutable interfaces when mutable ones exist?
Immutable interfaces help prevent accidental changes, making code safer and easier to understand. They are good for sharing data without risk of modification.
Click to reveal answer
Which Kotlin interface allows modifying the collection?
AMutableList
BList
CSet
DMap
✗ Incorrect
MutableList allows adding, removing, and updating elements, while List is read-only.
What happens if you try to add an element to a List in Kotlin?
AList converts to MutableList automatically
BCompilation error
CRuntime exception
DElement is added successfully
✗ Incorrect
List is immutable and does not have methods to add elements, so trying to add causes a compilation error.
Why prefer immutable interfaces in Kotlin?
AThey use less memory
BThey run faster than mutable interfaces
CThey allow more methods
DThey improve safety by preventing unwanted changes
✗ Incorrect
Immutable interfaces prevent accidental data changes, making code safer and easier to maintain.
Which interface would you use to change elements in a Kotlin list?
AList
BSet
CMutableList
DIterable
✗ Incorrect
MutableList supports modification methods like add, remove, and set.
What is a key difference between MutableList and List in Kotlin?
AMutableList supports modification, List does not
BList supports modification, MutableList does not
CBoth support modification
DNeither supports modification
✗ Incorrect
MutableList allows changes; List only allows reading.
Explain the difference between mutable and immutable interfaces in Kotlin.
Think about whether you can change the data or only read it.
You got /3 concepts.
Why might you choose to use an immutable interface over a mutable one?
Consider safety and clarity in your code.
You got /3 concepts.
Practice
(1/5)
1. Which statement best describes the difference between mutable and immutable interfaces in Kotlin?
easy
A. Immutable interfaces are used only for primitive types.
B. Mutable interfaces only allow reading data, immutable interfaces allow modification.
C. Both mutable and immutable interfaces allow data modification.
D. Immutable interfaces allow only reading data, while mutable interfaces allow data modification.
Solution
Step 1: Understand interface roles
Immutable interfaces provide read-only access to data, preventing changes.
Step 2: Compare mutable interfaces
Mutable interfaces extend immutable ones and allow data to be changed.
Final Answer:
Immutable interfaces allow only reading data, while mutable interfaces allow data modification. -> Option D
Quick Check:
Immutable = read-only, Mutable = read-write [OK]
Hint: Immutable = read-only, mutable = can change data [OK]
Common Mistakes:
Confusing which interface allows modification
Thinking both interfaces allow changes
Assuming immutable interfaces are only for primitives
2. Which of the following is the correct way to declare a mutable list interface in Kotlin?
easy
A. val list: MutableList<Int> = listOf(1, 2, 3)
B. val list: List<Int> = mutableListOf(1, 2, 3)
C. val list: MutableList<Int> = mutableListOf(1, 2, 3)
D. val list: List<Int> = listOf(1, 2, 3)
Solution
Step 1: Identify mutable list declaration
MutableList is the interface for mutable lists, and mutableListOf() creates a mutable list instance.
Step 2: Check each option
val list: MutableList<Int> = mutableListOf(1, 2, 3) correctly declares a MutableList and initializes it with mutableListOf().
Final Answer:
val list: MutableList<Int> = mutableListOf(1, 2, 3) -> Option C
Quick Check:
MutableList + mutableListOf() = mutable list [OK]
Hint: Use MutableList with mutableListOf() for mutable lists [OK]
Common Mistakes:
Using listOf() with MutableList type
Declaring mutable list as List type
Mixing mutable and immutable functions
3. What will be the output of the following Kotlin code?
val immutableList: List<Int> = listOf(1, 2, 3)
val mutableList: MutableList<Int> = mutableListOf(4, 5, 6)
println(immutableList.size)
mutableList.add(7)
println(mutableList)
medium
A. 3
[4, 5, 6, 7]
B. 3
[4, 5, 6]
C. 4
[4, 5, 6, 7]
D. Compilation error
Solution
Step 1: Check immutable list size
immutableList has 3 elements, so size is 3.
Step 2: Add element to mutable list and print
mutableList adds 7, so it becomes [4, 5, 6, 7].
Final Answer:
3
[4, 5, 6, 7] -> Option A
Quick Check:
Immutable size 3, mutable list adds 7 [OK]
Hint: Immutable size fixed; mutable can add elements [OK]
Common Mistakes:
Trying to add to immutable list causing error
Expecting immutable list size to change
Confusing output format
4. Identify the error in this Kotlin code snippet:
val numbers: List<Int> = listOf(1, 2, 3)
numbers.add(4)
medium
A. Cannot add to a List because it is immutable
B. Syntax error in listOf() usage
C. No error, code runs fine
D. Variable numbers should be declared as var
Solution
Step 1: Understand List immutability
List interface in Kotlin is immutable; it does not support add() method.
Step 2: Analyze the error
Calling add(4) on immutable List causes a compilation error.
Final Answer:
Cannot add to a List because it is immutable -> Option A
Quick Check:
Immutable List blocks add() method [OK]
Hint: List is immutable; use MutableList to add elements [OK]
Common Mistakes:
Trying to add to immutable List
Assuming var allows modification of immutable List
Confusing syntax error with immutability error
5. You have a function that accepts a List<String> parameter but you want to modify the list inside the function. Which is the best approach to handle this in Kotlin?
hard
A. Change the parameter type to MutableList<String> and pass a mutable list.
B. Create a new mutable copy of the list inside the function and modify that.
C. Use val keyword inside the function to modify the list.
D. Keep the parameter as List<String> and cast it to MutableList inside the function.
Solution
Step 1: Understand parameter immutability
List<String> is immutable, so it cannot be modified directly.
Step 2: Evaluate safe modification methods
Casting to MutableList is unsafe and may cause runtime errors; changing parameter type affects API design.
Step 3: Use safe copy for modification
Creating a mutable copy inside the function allows safe modifications without affecting original list.
Final Answer:
Create a new mutable copy of the list inside the function and modify that. -> Option B
Quick Check:
Copy immutable list to mutable for safe changes [OK]
Hint: Copy immutable list to mutable before modifying [OK]
Common Mistakes:
Casting immutable list to mutable unsafely
Changing parameter type breaking API contracts
Assuming val allows modification
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.