如何在 Kotlin 中将 List 转换为 Map?

androidmobile developmentapps/applicationskotlin 更新于 2026/2/10 6:07:17

在本文中,我们将了解如何使用 Kotlin 库提供的各种选项将 List 转换为 Map。

示例:使用 associate()

将 List 转换为 Map 的最标准方法是使用 associate() 函数。此函数接受一个包含项的列表作为参数,并返回一个包含键值对的 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")
   )

   // 创建一个 map 并在其中添加我自己的值列表。
   val myMap: Map<String, String> = mySubjectList.associate {
      Pair(it.priority, it.name)
   }

  println(myMap)
}

输出

运行上述代码后,将生成以下输出: 这是一个 Map,我们以键值对格式获取输出。

{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")
   )

   // 创建一个 Map 并在其中添加我自己的值列表
   val myMap: Map<String, String> = mySubjectList.associateBy(
      {it.priority}, {it.name}
   )

   println(myMap)
}

输出

它将生成以下输出,它是一个 Map,我们以键值格式获取输出。

{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}

相关文章