Bird
Raised Fist0
Kotlinprogramming~15 mins

Map transformation in Kotlin - Mini Project: Build & Apply

Choose your learning style10 modes available
Map transformation
📖 Scenario: You work in a small bookstore. You have a map of book titles and their prices. You want to update the prices by adding a fixed tax to each book.
🎯 Goal: Build a Kotlin program that creates a map of books and prices, sets a tax rate, applies the tax to each price using map transformation, and prints the updated prices.
📋 What You'll Learn
Create a map called bookPrices with these exact entries: "Kotlin Basics" to 30, "Advanced Kotlin" to 45, "Coroutines Guide" to 40
Create a variable called taxRate and set it to 0.1 (which means 10% tax)
Use mapValues on bookPrices to create a new map called updatedPrices where each price is increased by the tax rate
Print the updatedPrices map
💡 Why This Matters
🌍 Real World
Bookstores and shops often need to update prices by adding taxes or discounts to their product lists.
💼 Career
Understanding map transformations is useful for data processing, pricing algorithms, and working with collections in Kotlin.
Progress0 / 4 steps
1
Create the initial map of book prices
Create a map called bookPrices with these exact entries: "Kotlin Basics" to 30, "Advanced Kotlin" to 45, "Coroutines Guide" to 40
Kotlin
Hint

Use mapOf to create a map with the given key-value pairs.

2
Set the tax rate
Create a variable called taxRate and set it to 0.1 (which means 10% tax)
Kotlin
Hint

Use val taxRate = 0.1 to set the tax rate.

3
Apply the tax to each price using mapValues
Use mapValues on bookPrices to create a new map called updatedPrices where each price is increased by the tax rate
Kotlin
Hint

Use mapValues with a lambda that multiplies each price by 1 + taxRate and converts to Int.

4
Print the updated prices
Write println(updatedPrices) to display the updated prices map
Kotlin
Hint

Use println(updatedPrices) to show the final map with updated prices.

Practice

(1/5)
1. What does the map function do when applied to a list in Kotlin?
easy
A. It removes elements from the list based on a condition.
B. It creates a new list by applying a transformation to each element.
C. It sorts the list in ascending order.
D. It changes the original list by modifying its elements.

Solution

  1. Step 1: Understand the purpose of map

    The map function applies a given transformation to each element of the list.
  2. Step 2: Check the effect on the list

    It returns a new list with transformed elements without changing the original list.
  3. Final Answer:

    It creates a new list by applying a transformation to each element. -> Option B
  4. Quick Check:

    map transforms each item and returns new list [OK]
Hint: Remember: map returns a new list, original stays same [OK]
Common Mistakes:
  • Thinking map modifies the original list
  • Confusing map with filter or sort
  • Assuming map removes elements
2. Which of the following is the correct syntax to transform a list of integers by doubling each value using map in Kotlin?
easy
A. val result = list.map { it * 2 }
B. val result = list.map(it * 2)
C. val result = list.map -> it * 2
D. val result = list.map { it + 2 }

Solution

  1. Step 1: Identify correct lambda syntax

    The map function requires a lambda inside curly braces: { it * 2 }.
  2. Step 2: Check the transformation logic

    Doubling means multiplying by 2, so it * 2 is correct.
  3. Final Answer:

    val result = list.map { it * 2 } -> Option A
  4. Quick Check:

    Correct lambda syntax with doubling [OK]
Hint: Use curly braces and 'it' for lambda in map [OK]
Common Mistakes:
  • Missing curly braces around lambda
  • Using parentheses instead of braces
  • Wrong operation inside lambda
3. What is the output of the following Kotlin code?
val numbers = listOf(1, 2, 3)
val result = numbers.map { it + 5 }
println(result)
medium
A. [6, 7, 8]
B. [1, 2, 3, 5]
C. [5, 6, 7]
D. [1, 2, 3]

Solution

  1. Step 1: Apply the map transformation

    Each element in numbers is increased by 5: 1+5=6, 2+5=7, 3+5=8.
  2. Step 2: Form the new list

    The new list is [6, 7, 8], which is printed.
  3. Final Answer:

    [6, 7, 8] -> Option A
  4. Quick Check:

    Each number +5 = [6, 7, 8] [OK]
Hint: Add 5 to each element inside map to get output [OK]
Common Mistakes:
  • Confusing original list with transformed list
  • Adding 5 only once instead of to each element
  • Misreading the output format
4. Identify the error in this Kotlin code snippet:
val list = listOf(1, 2, 3)
val newList = list.map(it * 3)
println(newList)
medium
A. The multiplication operator is incorrect.
B. Using map on a list is not allowed.
C. The list should be mutable to use map.
D. Missing curly braces around the lambda expression.

Solution

  1. Step 1: Check lambda syntax in map

    The map function requires a lambda inside curly braces, but here parentheses are used without braces.
  2. Step 2: Confirm correct usage

    Correct syntax is list.map { it * 3 } to apply multiplication.
  3. Final Answer:

    Missing curly braces around the lambda expression. -> Option D
  4. Quick Check:

    Lambda needs braces in map [OK]
Hint: Always use curly braces for lambda in map [OK]
Common Mistakes:
  • Using parentheses instead of braces for lambda
  • Thinking map needs mutable list
  • Misunderstanding operator usage
5. Given a list of strings val words = listOf("apple", "banana", "cherry"), how can you create a map where each word is a key and its length is the value using Kotlin's map transformation?
hard
A. val wordLengths = words.associateWith { it.length }
B. val wordLengths = words.map { it.length to it }
C. val wordLengths = words.map { it to it.length } .toMap()
D. val wordLengths = words.map { it.length }

Solution

  1. Step 1: Understand the goal

    We want a map where keys are words and values are their lengths.
  2. Step 2: Use map to create pairs and convert to map

    words.map { it to it.length } creates pairs (word, length). Then toMap() converts the list of pairs to a map.
  3. Final Answer:

    val wordLengths = words.map { it to it.length } .toMap() -> Option C
  4. Quick Check:

    Map pairs then convert to map [OK]
Hint: Use map to pairs and then toMap() for map creation [OK]
Common Mistakes:
  • Using associateWith is correct but not the asked map transformation
  • Mapping only lengths returns list, not map
  • Swapping key and value in pairs
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard