Kotlin – Convert Map to List Examples
1. Overview
In this tutorial, We will learn how to convert the Map to List in kotlin programming. Map implementations such as HashMap or TreeMap can be converted into an ArrayList or List object.
Let us explore the
different ways to do this conversion.
2. Converting HashMap to List in Kotlin Using ArrayList Constructor
This approach is the simple one and easy. First create the HashMap object with HashMap() constructor.
Next, adding few key value pairs to the map. Use map.keys and map.values to get the all keys and values.
Pass these values to ArrayList constructor to convert the map to list.
These properties will be invoking the below functions internally when you are using java.util.HashMap.
map.keys –> map.keySet()
map.values –> map.values()
package com.javaprogramto.kotlin.collections.map.list import java.util.HashMap fun main(array: Array<String>) { var map = HashMap<Int, String>(); map.put(10, "Ten") map.put(20, "Twenty") map.put(30, "Thirty") map.put(40, "Fourty") map.put(50, "Fifty") var keysList = ArrayList(map.keys); var valuesList = ArrayList(map.values); println("Keys list : $keysList") println("Values list : $valuesList") }
Output:
Keys list : [50, 20, 40, 10, 30] Values list : [Fifty, Twenty, Fourty, Ten, Thirty]
3. Converting LinkedHashMap to List in Kotlin Using ArrayList Constructor
From the above program, the output is not in the order what is inserted into the map. To preserve the insertion order then need to use LinkedHashMap class instead of HashMap.
Look at the below program and observer the output order.
package com.javaprogramto.kotlin.collections.map.list import java.util.HashMap fun main(array: Array<String>) { // to holds the insertion order var map = LinkedHashMap<Int, String>(); map.put(10, "Ten") map.put(20, "Twenty") map.put(30, "Thirty") map.put(40, "Fourty") map.put(50, "Fifty") // gets the keys and values as per the insertion var keysList = ArrayList(map.keys); var valuesList = ArrayList(map.values); // prints println("Keys list : $keysList") println("Values list : $valuesList") }
Output:
Keys list : [10, 20, 30, 40, 50] Values list : [Ten, Twenty, Thirty, Fourty, Fifty]
4. Kotlin Map to List using toList() method
Use toList() method on map object or keys, values properties.
package com.javaprogramto.kotlin.collections.map.list import java.util.HashMap fun main(array: Array<String>) { var map = HashMap<Int, String>(); map[10] = "Ten" map[20] = "Twenty" map[30] = "Thirty" map[40] = "Fourty" map[50] = "Fifty" // example 1 using toList() method var keysList = map.keys.toList(); var valuesList = map.values.toList(); println("using toList()") println("Keys list : $keysList") println("Values list : $valuesList") // example 2 using toList() method var mutableMap: MutableMap<Int, String> = HashMap() mutableMap[10] = "Ten" mutableMap[20] = "Twenty" mutableMap[30] = "Thirty" mutableMap[40] = "Fourty" mutableMap[50] = "Fifty" var entries = mutableMap.toList().map { "(${it.first}, ${it.second})"} println("\nusing toList() on mutable map") entries.forEach{print("$it ")} }
Output:
using toList() Keys list : [50, 20, 40, 10, 30] Values list : [Fifty, Twenty, Fourty, Ten, Thirty] using toList() on mutable map (50, Fifty) (20, Twenty) (40, Fourty) (10, Ten) (30, Thirty)
5. Kotlin Map to List using entries properties
map.entries properties will returns the key-value pairs. Use map() method on the entries object. We can use the any pattern in between the key and value.
package com.javaprogramto.kotlin.collections.map.list import java.util.HashMap fun main(array: Array<String>) { var mutableMap: MutableMap<Int, String> = HashMap() mutableMap[10] = "Ten" mutableMap[20] = "Twenty" mutableMap[30] = "Thirty" mutableMap[40] = "Fourty" mutableMap[50] = "Fifty" var list : List<String> = mutableMap.entries.map { ("${it.key} --> ${it.value}") } list.forEach{println(it)} }
Output:
50 --> Fifty 20 --> Twenty 40 --> Fourty 10 --> Ten 30 --> Thirty
6. Kotlin Map to List using keys and values
Use keys and values properties of map object to call map() method.
package com.javaprogramto.kotlin.collections.map.list import java.util.HashMap fun main(array: Array<String>) { var mutableMap: MutableMap<Int, String> = HashMap() mutableMap[10] = "Ten" mutableMap[20] = "Twenty" mutableMap[30] = "Thirty" mutableMap[40] = "Fourty" mutableMap[50] = "Fifty" var keysList : List<String> = mutableMap.keys.map { ("${it} ") } var valuesList : List<String> = mutableMap.values.map { ("${it} ") } println("---- keys list ------") keysList.forEach{println(it)} println("----- values list ------") valuesList.forEach{println(it)} }
Output:
---- keys list ------ 50 20 40 10 30 ----- values list ------ Fifty Twenty Fourty Ten Thirty
7. Conclusion
in this article, We have seen how to convert Map to List in Kotlin programming and examples on different approaches.
How to convert List to Map in Kotlin?
Published on Java Code Geeks with permission by Venkatesh Nukala, partner at our JCG program. See the original article here: Kotlin – Convert Map to List Examples Opinions expressed by Java Code Geeks contributors are their own. |