2017-04-09 1 views
0

J'ai une classe de cas comme cet utilisateur (id: chaîne, nom: chaîne, adresse: chaîne, mot de passe: chaîne) et une autre classe de cas comme compte (userId: String, accountId: String, roles: Set [Chaîne]). J'ai besoin de filtrer une liste d'objets de compte (List [Account]) basée sur une liste d'userIds que j'ai sous la forme d'une liste [String] dans Scala. J'ai lutté avec ceci et ai essayé de faire ceci mais ne pourrais pas. Tout pointeur sur la façon dont je devrais faire ceci serait vraiment utile. Merci!Filtrer une liste d'objets de classe de cas basée sur une liste de chaînes

Répondre

0

Je ne sais pas si je comprends bien votre question, mais si vous essayez seulement de ne garder que Account s pour lesquels la userId fait partie de collecte que vous avez, vous pouvez le faire comme ceci:

val accounts: List[Account] = ??? 
val idsToKeep: Set[String] = ??? 
accounts.filter(a => idsToKeep.contains(a.userId)) 

pour mémoire, si vous utilisez la méthode contains un lot, vous feriez mieux d'utiliser un Set[String] qu'un List[String] pour stocker les ids garder.