如何将列表(List)转换为字典(Map)在 Kotlin 中:完整指南
大家好!我刚开始从 Java 学习 Kotlin,在将对象列表转换为字典(Map)时遇到了问题。在 Java 中,我使用循环或 Stream API 配合 Collectors.toMap(),但在 Kotlin 中我还没搞清楚正确的语法。
我有一个简单的 data class:
```kotlin
data class User(val id: Int, val name: String)
```
以及一个用户列表:
```kotlin
val users = listOf(
User(1, "安娜"),
User(2, "鲍里斯"),
User(3, "维克多")
)
```
我需要将这个列表转换为 Map,其中键是用户的 id,值是对应的 User 对象。也就是说,我想要得到:`{1=User(1, "安娜"), 2=User(2, "鲍里斯"), 3=User(3, "维克多")}`。
我尝试过写类似 `users.map { it.id to it }.toMap()` 这样的代码,但看起来很奇怪,我不确定是否正确。此外,我需要解决可能出现的重复键问题——如果两个用户有相同的 id 怎么办?在 Java 中,我会指定一个 merge function,