Zum Beispiel habe ich eine Liste von Zeichenfolgen wie:
val list = listOf("a", "b", "c", "d")
und ich möchte es in eine Karte konvertieren, in der die Zeichenfolgen die Schlüssel sind.
Ich weiß, dass ich die .toMap()
Funktion verwenden sollte, aber ich weiß nicht wie, und ich habe keine Beispiele dafür gesehen.
dictionary
kotlin
LordScone
quelle
quelle
Pair
Instanzen kann für große Sammlungen sehr kostspielig seinVon
List
bisMap
mitassociate
FunktionMit Kotlin 1.3
List
hat eine Funktion aufgerufenassociate
.associate
hat die folgende Erklärung:Verwendung:
Von
List
bisMap
mitassociateBy
FunktionMit Kotlin
List
hat eine Funktion aufgerufenassociateBy
.associateBy
hat die folgende Erklärung:Verwendung:
quelle
* Referenz: Kotlin-Dokumentation
1- assoziieren (um sowohl Schlüssel als auch Werte festzulegen): Erstellen Sie eine Karte, in der Schlüssel- und Wertelemente festgelegt werden können:
2- AssociateBy (nur Schlüssel durch Berechnung festlegen): Erstellen Sie eine Karte, in der wir neue Schlüssel festlegen können. Für Werte werden analoge Elemente festgelegt
3- AssociateWith (nur Werte durch Berechnung festlegen): Erstellen Sie eine Karte, in der wir neue Werte festlegen können. Für Schlüssel werden analoge Elemente festgelegt
Beispiel aus Kotlin-Tipps:
quelle
Sie können
associate
für diese Aufgabe verwenden:In diesem Beispiel werden die Zeichenfolgen von
list
zu den Schlüsseln und ihre entsprechenden Längen (als Beispiel) zu den Werten innerhalb der Karte.quelle
Wenn Ihre Liste Duplikate enthält , die Sie nicht verlieren möchten, können Sie dies mit verwenden
groupBy
.Ansonsten, wie alle anderen sagten, verwenden
associate/By/With
(was bei Duplikaten meines Erachtens nur den letzten Wert mit diesem Schlüssel zurückgibt).Ein Beispiel für die Gruppierung einer Liste von Personen nach Alter:
Ergebnisse:
quelle
Das hat sich in der RC-Version geändert.
ich benutze
val map = list.groupByTo(destinationMap, {it.facebookId}, { it -> it.point })
quelle