Si j'ai une collection d'un objet dans Kotlin, existe-t-il un moyen rapide d'obtenir une collection d'une certaine propriété de ces objets? J'ai regardé une liste de opérations de collecte pour Kotlin , mais rien ne se démarquait pour moi (mais j'ai peut-être oublié quelque chose)
En python cela reviendrait à:
[person.name for person in persons]
Et je préfère utiliser une fonction de collections au lieu de faire:
var nameMap = mutableListOf<String>()
persons.forEach{person -> nameMap.add(person.name)}
Je manque assez de connaissances sur les fonctions de filtrage/lambda et rien d'autre que la compréhension de la liste, donc excuses si c'est une question simple
c'est facile à faire à Kotlin:
// v--- the variable type can be removed
var nameMap: MutableList<String> = persons.map { it.name }.toMutableList();
[~ # ~] si [~ # ~] vous voulez un List
immuable, il peut simplifier comme ci-dessous:
// v--- the variable type can be removed
var nameMap: List<String> = persons.map { it.name };
[~ # ~] ou [~ # ~] en utilisant expression de référence de fonction à la place:
var nameMap = persons.map(Person::name);
Si vous souhaitez mapper le modèle, faites-le.
var nameMap: List<Model> = persons.map { Model(it.name,it.number) };