The associate function creates a Map by transforming elements of a collection into key-value pairs.
Click to reveal answer
beginner
How do you create a map from a list of strings where keys are the strings and values are their lengths using associate?
You can use: val map = list.associate { it to it.length } This creates a map where each string is a key and its length is the value.
Click to reveal answer
intermediate
What is the difference between associate and associateBy in Kotlin?
associate creates a map from key-value pairs you define. associateBy creates a map where keys are generated from elements, and values are the elements themselves.
Click to reveal answer
intermediate
Can associate handle duplicate keys? What happens if duplicates exist?
If duplicate keys are created, the last value for that key will overwrite previous ones in the resulting map.
Click to reveal answer
beginner
Write a Kotlin code snippet using associate to map a list of numbers to their squares.
Example: val numbers = listOf(1, 2, 3) val map = numbers.associate { it to it * it } This creates a map like {1=1, 2=4, 3=9}.
Click to reveal answer
What does the Kotlin associate function return?
AA Pair of two elements
BA List of transformed elements
CA Set of unique elements
DA Map created from key-value pairs
✗ Incorrect
associate transforms a collection into a Map by creating key-value pairs.
Which of the following is a valid use of associate?
Alist.associateBy { it.length }
Blist.associate { it to it.length }
Clist.associateWith { it.length }
Dlist.associateByKey { it.length }
✗ Incorrect
associate requires a lambda returning a Pair (key to value).
If duplicate keys are generated by associate, what happens?
AThe last value overwrites previous ones
BThe first value is kept
CDuplicates are stored in a list
DAn error is thrown
✗ Incorrect
The last value for a duplicate key overwrites earlier ones in the map.
What is the difference between associate and associateBy?
A<code>associate</code> creates key-value pairs; <code>associateBy</code> creates keys only
B<code>associate</code> creates a map; <code>associateBy</code> creates a list
C<code>associate</code> requires pairs; <code>associateBy</code> uses keys from elements and values as elements
DThey are the same function
✗ Incorrect
associate needs pairs; associateBy uses a key selector and maps keys to elements.
Which Kotlin collection function would you use to create a map from a list where keys are elements and values are their lengths?
Aassociate
Bfilter
Cmap
Dreduce
✗ Incorrect
associate is used to create maps from collections by defining key-value pairs.
Explain how the associate function works in Kotlin and give an example.
Think about turning a list into a map by pairing each item with a value.
You got /3 concepts.
What happens if duplicate keys are created when using associate? How can you handle this?
Focus on map behavior with duplicate keys.
You got /3 concepts.
Practice
(1/5)
1. What does the associate function do in Kotlin when used on a list?
easy
A. It filters elements based on a condition.
B. It creates a map by pairing each element with a key and value.
C. It sorts the list in ascending order.
D. It converts the list into a set.
Solution
Step 1: Understand the purpose of associate
The associate function transforms a list into a map by creating key-value pairs from each element.
Step 2: Compare with other functions
Sorting, filtering, and converting to a set are different operations and not what associate does.
Final Answer:
It creates a map by pairing each element with a key and value. -> Option B
Quick Check:
associate creates map = It creates a map by pairing each element with a key and value. [OK]
Hint: associate always creates a map from list elements [OK]
Common Mistakes:
Confusing associate with sorting or filtering
Thinking associate returns a list or set
Assuming associate keeps duplicates as keys
2. Which of the following is the correct syntax to create a map from a list of strings listOf("a", "b") using associate where keys are the strings and values are their lengths?
easy
A. listOf("a", "b").associateWith { it }
B. listOf("a", "b").associate { it.length to it }
C. listOf("a", "b").associateBy { it.length }
D. listOf("a", "b").associate { it to it.length }
Solution
Step 1: Identify key-value pairing
We want keys as strings and values as their lengths, so key = it, value = it.length.
Step 2: Match syntax
associate { it to it.length } correctly pairs each element with its length.
Final Answer:
listOf("a", "b").associate { it to it.length } -> Option D
Quick Check:
key=string, value=length = listOf("a", "b").associate { it to it.length } [OK]
Hint: Use 'associate { key to value }' for custom map pairs [OK]
Common Mistakes:
Swapping key and value in the pair
Using associateBy or associateWith incorrectly
Forgetting to use 'to' for pairs
3. What is the output of the following Kotlin code?
val list = listOf("cat", "dog", "bird")
val map = list.associate { it.first() to it.length }
println(map)
medium
A. Compilation error
B. {cat=3, dog=3, bird=4}
C. {c=3, d=3, b=4}
D. {c=3, d=3, b=3}
Solution
Step 1: Analyze the associate lambda
Each element's first character is the key, and the length of the string is the value.
Step 2: Map entries
"cat" -> 'c' to 3, "dog" -> 'd' to 3, "bird" -> 'b' to 4.
Final Answer:
{c=3, d=3, b=4} -> Option C
Quick Check:
Keys are first chars, values are lengths = {c=3, d=3, b=4} [OK]
Hint: associate uses lambda to create key-value pairs [OK]
Common Mistakes:
Confusing keys with full strings
Mixing up length values
Expecting a list instead of a map
4. Identify the error in this Kotlin code snippet:
val numbers = listOf(1, 2, 3, 2)
val map = numbers.associate { it to it * 2 }
println(map)
medium
A. Later duplicate keys overwrite earlier ones silently.
B. Syntax error in associate lambda.
C. Duplicate keys cause runtime exception.
D. associate cannot be used with integers.
Solution
Step 1: Check for duplicate keys
The list has duplicate '2' values, so key '2' appears twice.
Step 2: Understand associate behavior with duplicates
associate overwrites earlier keys silently; no error occurs.
Final Answer:
Later duplicate keys overwrite earlier ones silently. -> Option A
Hint: Duplicate keys overwrite previous silently in associate [OK]
Common Mistakes:
Expecting runtime error on duplicate keys
Thinking associate syntax is wrong
Believing associate can't handle integers
5. Given a list of pairs listOf("apple" to 1, "banana" to 2, "apple" to 3), how can you create a map that sums values for duplicate keys using associate or similar Kotlin functions?
hard
A. Use groupBy then mapValues to sum values.
B. Use associate directly; it sums duplicates automatically.
C. Use associateBy with a sum lambda.
D. Use associateWith to sum values.
Solution
Step 1: Understand associate limitation
associate overwrites duplicate keys; it does not sum values.
Step 2: Use groupBy and mapValues
Group pairs by key, then sum the values in each group to get combined totals.
Final Answer:
Use groupBy then mapValues to sum values. -> Option A
Quick Check:
Sum duplicates by grouping, not associate = Use groupBy then mapValues to sum values. [OK]
Hint: Sum duplicates by grouping, not associate [OK]
Common Mistakes:
Expecting associate to sum duplicates
Using associateBy incorrectly for summing
Confusing associateWith purpose
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.