如何在 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}

更新於: 2021年10月27日

4K+ 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.