如何在 Kotlin 中将 List 转换为 Map?
在本文中,我们将了解如何使用 Kotlin 库提供的各种选项将 List 转换为 Map。
示例:使用 associate()
将列表转换为映射的最标准方法是使用 **associate()** 函数。此函数将项目列表作为参数,并返回包含键值对的映射。在以下示例中,我们将了解其工作原理。
示例
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) }
输出
运行以上代码段后,它将生成以下输出,该输出是一个映射,并且我们以键值格式获得输出。
{1=Java, 2=Kotlin, 3=C}
示例:使用 associateBy()
**associateBy()** 是另一个可用于将列表转换为 Map 的函数。在以下示例中,我们将了解如何实现相同的功能。
示例
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) }
输出
它将生成以下输出,该输出是一个映射,并且我们以键值格式获得输出。
{1=Java, 2=Kotlin, 3=C}
示例:使用 toMap()
Kotlin 库提供了另一个函数来将项目列表转换为 Map。Kotlin **Map** 类包含一个名为 **toMap()** 的函数,该函数返回一个新映射,其中包含来自给定集合的所有键值对。让我们看看它是如何工作的。
示例
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) }
输出
运行以上代码段后,它将生成以下输出,该输出是一个映射,并且我们以键值格式获得输出。
{1=Java, 2=Kotlin, 3=C}
广告