The toMutableMap function in Kotlin is used to convert a sequence into a MutableMap. It is part of the Kotlin standard library and provides a way to transform a sequence into a mutable key-value pair collection.
Table of Contents
- Introduction
toMutableMapFunction Syntax- Understanding
toMutableMap - Examples
- Basic Usage
- Converting a Sequence of Strings to a MutableMap
- Using
toMutableMapwith Custom Objects - Chaining
toMutableMapwith Other Functions
- Real-World Use Case
- Conclusion
Introduction
The toMutableMap function allows you to convert a sequence into a MutableMap, which is a collection of key-value pairs that allows modifications. This is useful for scenarios where you need a dictionary-like structure that can be updated after its creation.
toMutableMap Function Syntax
The syntax for the toMutableMap function is as follows:
fun <K, V> Sequence<Pair<K, V>>.toMutableMap(): MutableMap<K, V>
fun <T, K, V> Sequence<T>.toMutableMap(keySelector: (T) -> K, valueSelector: (T) -> V): MutableMap<K, V>
Parameters:
keySelector: A lambda function that defines how to select the key for each element.valueSelector: A lambda function that defines how to select the value for each element.
Returns:
- A
MutableMapcontaining the key-value pairs from the sequence.
Understanding toMutableMap
The toMutableMap function works by iterating through the sequence and applying the keySelector and valueSelector functions to each element to generate key-value pairs. These pairs are then added to the resulting mutable map.
Examples
Basic Usage
To demonstrate the basic usage of toMutableMap, we will create a sequence of pairs and convert it into a mutable map.
Example
fun main() {
val pairs = sequenceOf(1 to "One", 2 to "Two", 3 to "Three")
val map = pairs.toMutableMap()
println(map) // Output: {1=One, 2=Two, 3=Three}
}
Output:
{1=One, 2=Two, 3=Three}
Converting a Sequence of Strings to a MutableMap
This example shows how to convert a sequence of strings into a mutable map where the key is the string and the value is the length of the string.
Example
fun main() {
val names = sequenceOf("Arjun", "Bhaskar", "Chitra", "Deepak", "Esha")
val nameLengthMap = names.toMutableMap({ it }, { it.length })
println(nameLengthMap) // Output: {Arjun=5, Bhaskar=7, Chitra=6, Deepak=6, Esha=4}
}
Output:
{Arjun=5, Bhaskar=7, Chitra=6, Deepak=6, Esha=4}
Using toMutableMap with Custom Objects
You can use the toMutableMap function to convert a sequence of custom objects into a mutable map.
Example
data class Person(val name: String, val age: Int)
fun main() {
val people = sequenceOf(
Person("Arjun", 25),
Person("Bhaskar", 30),
Person("Chitra", 22),
Person("Deepak", 28),
Person("Esha", 26)
)
val peopleMap = people.toMutableMap({ it.name }, { it.age })
println(peopleMap) // Output: {Arjun=25, Bhaskar=30, Chitra=22, Deepak=28, Esha=26}
}
Output:
{Arjun=25, Bhaskar=30, Chitra=22, Deepak=28, Esha=26}
Chaining toMutableMap with Other Functions
The toMutableMap function can be chained with other sequence functions to perform more complex operations before converting the sequence into a mutable map.
Example
fun main() {
val numbers = sequenceOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val evenNumberMap = numbers.filter { it % 2 == 0 }
.toMutableMap({ it }, { it * it })
println(evenNumberMap) // Output: {2=4, 4=16, 6=36, 8=64, 10=100}
}
Output:
{2=4, 4=16, 6=36, 8=64, 10=100}
Real-World Use Case
Converting a Sequence of Products to a MutableMap
In real-world applications, the toMutableMap function can be used to convert a sequence of products into a mutable map where the key is the product name and the value is the product price.
Example
data class Product(val name: String, val price: Double)
fun main() {
val products = sequenceOf(
Product("Laptop", 1000.0),
Product("Smartphone", 600.0),
Product("Tablet", 300.0),
Product("Headphones", 150.0)
)
val productPriceMap = products.toMutableMap({ it.name }, { it.price })
println(productPriceMap) // Output: {Laptop=1000.0, Smartphone=600.0, Tablet=300.0, Headphones=150.0}
}
Output:
{Laptop=1000.0, Smartphone=600.0, Tablet=300.0, Headphones=150.0}
Conclusion
The toMutableMap function in Kotlin provides used for converting a sequence into a mutable map, ensuring that you can efficiently transform sequences into key-value pair collections that can be modified according to your requirements. By understanding and using the toMutableMap function, you can manage and process data in your Kotlin applications more effectively.