Dis que j'ai des classes de cas comme celle-ci.
content.someContent.map(_.to(collection.mutable.Map))
4 Réponses :
Vous pouvez le faire en utilisant Vous utilisez Ceci fonctionne comme dans cet exemple: p> - code> opérateur et repliolft sur les touches pour supprimer.
obtenez code> pour obtenir une valeur, si vous voulez le faire la sécurité, vous Besoin d'utiliser: p>
Mais je n'ai pas que la carte mais l'option [carte]. J'ai essayé valwithoutkeysys = keys_to_remove.foltleft (content.somecontent.get) code> et obtenez juste
hashmap () code>
Vous n'avez pas besoin d'une mutabilité pour cela.
val keys_to_keep: List[String] = List("a", "b") val res = content.someContent.map( _.filterKeys(k => !keys_to_keep.contains(k)) )
Je reçois un peu (MAPView (
@MakarnikitinIn Cela signifie que votre carte code> utilise la mise en œuvre code> MapView CODE>. Il s'agit d'une implémentation paresseuse et ne donnera pas de résultats tant que vous ne les interrogerez réellement (par exemple en utilisant
.apply (clé) code>).
Voici comment vous pouvez le faire:
val optionalMap = someClass0.content.someContent.map { contentMap => contentMap - keyToBeRemoved } val originalStructure = someClass0.copy(content = SomeClass1(optionalMap))
J'ai besoin non seulement de la carte filtrée, mais aussi de toutes les structures parents.
@Makarnikitine J'ai mis à jour ma réponse et aussi le lien vers Scastie.
Ceci supprimera toutes les touches et conservera la structure
val someClass0_copy = someClass0.copy(content = Content(someContent = someClass0.content. someContent.map(_.removedAll(keysToRemove)))