Computer >> Máy Tính >  >> Lập trình >> Android

Làm thế nào để chuyển đổi Danh sách thành Bản đồ trong Kotlin?

Trong bài viết này, chúng ta sẽ xem cách chúng ta có thể chuyển đổi Danh sách thành Bản đồ bằng cách sử dụng các tùy chọn khác nhau do Thư viện Kotlin cung cấp.

Ví dụ:Sử dụng Associate ()

Cách chuẩn nhất để chuyển đổi danh sách thành bản đồ là sử dụng liên kết () chức năng. Hàm này nhận một danh sách các mục làm đối số và nó trả về một bản đồ chứa các cặp khóa-giá trị. Trong ví dụ sau, chúng ta sẽ xem nó hoạt động như thế nào.

Ví dụ

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

Đầu ra

Sau khi chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả đầu ra sau đây là một bản đồ và chúng ta nhận được kết quả đầu ra ở định dạng khóa-giá trị.

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

Ví dụ:Sử dụng AssociateBy ()

AssociateBy () là một chức năng khác có thể được sử dụng để chuyển đổi danh sách thành Bản đồ. Trong ví dụ sau, chúng ta sẽ thấy cách chúng ta có thể triển khai tương tự.

Ví dụ

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

Đầu ra

Nó sẽ tạo ra đầu ra sau đây là một bản đồ và chúng tôi nhận được đầu ra ở định dạng khóa-giá trị.

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

Ví dụ:Sử dụng toMap ()

Thư viện Kotlin cung cấp một chức năng khác để chuyển đổi danh sách các mục thành Bản đồ. Kotlin Bản đồ lớp chứa một hàm được gọi là toMap () nó trả về một bản đồ mới chứa tất cả các cặp khóa-giá trị từ một bộ sưu tập nhất định. Hãy xem nó hoạt động như thế nào.

Ví dụ

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

Đầu ra

Khi chúng tôi chạy đoạn mã trên, nó sẽ tạo ra đầu ra sau đây là một bản đồ và chúng tôi nhận được đầu ra ở định dạng khóa-giá trị.

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