Por ejemplo, tengo una lista de cadenas como:
val list = listOf("a", "b", "c", "d")
y quiero convertirlo en un mapa, donde las cadenas son las claves.
Sé que debería usar la .toMap()función, pero no sé cómo, y no he visto ningún ejemplo de ella.
dictionary
kotlin
LordScone
fuente
fuente

Pairinstancias podría ser muy costosa para grandes coleccionesDe
ListaMapconassociatefunciónCon Kotlin 1.3,
Listtiene una función llamadaassociate.associatetiene la siguiente declaración:Uso:
De
ListaMapconassociateByfunciónCon Kotlin,
Listtiene una función llamadaassociateBy.associateBytiene la siguiente declaración:Uso:
fuente
* Referencia: documentación de Kotlin
1- asociado (para establecer claves y valores): cree un mapa que pueda establecer elementos clave y de valor:
2- AssociateBy (solo configure Keys por cálculo): construya un mapa en el que podamos establecer nuevas Keys, se establecerán elementos análogos para los valores
3- AssociatedWith (solo establecer valores por cálculo): construir un mapa que podamos establecer nuevos valores, se establecerán elementos análogos para las claves
Ejemplo de consejos de Kotlin:
fuente
Puede usar
associatepara esta tarea:En este ejemplo, las cadenas se
listconvierten en las claves y sus longitudes correspondientes (como ejemplo) se convierten en los valores dentro del mapa.fuente
Si tiene duplicados en su lista que no desea perder, puede hacerlo usando
groupBy.De lo contrario, como todos los demás dijeron, use
associate/By/With(que en el caso de duplicados, creo, solo devolverá el último valor con esa clave).Un ejemplo que agrupa una lista de personas por edad:
Resultados:
fuente
Eso ha cambiado en la versión RC.
estoy usando
val map = list.groupByTo(destinationMap, {it.facebookId}, { it -> it.point })fuente