How to convert a List to a Map in Kotlin?



In this article, we will see how we can convert a List to a Map using various options provided by the Kotlin Library.

Example: Using associate()

The most standard way of converting a list into a map is by using the associate() function. This function takes a list of items as an argument and it returns a map containing key-value pairs. In the following example, we will see how it works.

Example

data class mySubjectList(var name: String, var priority: String) fun main() {    val mySubjectList: List<mySubjectList> = listOf(       mySubjectList("Java", "1"),       mySubjectList("Kotlin", "2"),       mySubjectList("C", "3")    )    // Creating a map and adding my own list of values in it.    val myMap: Map<String, String> = mySubjectList.associate {       Pair(it.priority, it.name)    }    println(myMap) }

Output

Once we run the above piece of code, it will generate the following output which is a map and we get the output in a key-value format.

{1=Java, 2=Kotlin, 3=C}

Example: Using associateBy()

AssociateBy() is another function that can be used in order to transform a list into a Map. In the following example, we will see how we can implement the same.

Example

data class mySubjectList(var name: String, var priority: String) fun main() {    val mySubjectList: List<mySubjectList> = listOf(       mySubjectList("Java", "1"),       mySubjectList("Kotlin", "2"),       mySubjectList("C", "3")    )    // Creating a map and adding my own list of the values in it    val myMap: Map<String, String> = mySubjectList.associateBy(       {it.priority}, {it.name}    )    println(myMap) }

Output

It will generate the following output which is a map and we get the output in a key-value format.

{1=Java, 2=Kotlin, 3=C}

Example: Using toMap()

Kotlin library provides another function to convert a list of items into a Map. Kotlin Map class contains a function called toMap() which returns a new map containing all the key-value pairs from a given collection. Let's see how it works.

Example

data class mySubjectList(var name: String, var priority: String) fun main() {    val mySubjectList: List<mySubjectList> = listOf(       mySubjectList("Java", "1"),       mySubjectList("Kotlin", "2"),       mySubjectList("C", "3")    )    // Creating a map and adding my own list of the values in it .    val myMap: Map<String, String> = mySubjectList.map{       it.priority to it.name    }.toMap()    println(myMap) }

Output

Once we run the above piece of code, it will generate the following output which is a map and we get the output in a key-value format.

{1=Java, 2=Kotlin, 3=C}
Updated on: 2021-10-27T11:31:57+05:30

5K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements