Avatar ·

Cómo convertir una List en un Map en Kotlin: guía completa

¡Hola a todos! Acabo de empezar a aprender Kotlin después de Java, y tengo un problema con la conversión de una lista de objetos a un Map. En Java usaba bucles o Stream API con Collectors.toMap(), pero en Kotlin aún no entiendo la sintaxis correcta. Tengo una clase de datos simple: ```kotlin data class User(val id: Int, val name: String) ``` Y una lista de usuarios: ```kotlin val users = listOf( User(1, "Anna"), User(2, "Boris"), User(3, "Viktor") ) ``` Necesito convertir esta lista en un Map, donde la clave sea el id del usuario y el valor sea el objeto User en sí. Es decir, quiero obtener: `{1=User(1, "Anna"), 2=User(2, "Boris"), 3=User(3, "Viktor")}`. Intenté escribir algo como `users.map { it.id to it }.toMap()`, pero se ve extraño y no estoy seguro de si es correcto. Además, necesito resolver el problema de posibles claves duplicadas: ¿qué pasa si dos usuarios tienen el mismo id? En Java especificaría una función de merge (merge function).