Scala différence de deux listes
j'ai deux listes:
val list1 = List("word1","word2","word2","word3","word1")
val list2 = List("word1","word4")
je veux supprimer toutes les occurrences de list2
list1
, c'est à dire que je veux
List("word2","word2","word3") <= list1 *minus* list2
j'ai fait list1 diff list2
ce qui me donne List("word2","word2","word3","word1")
qui supprime seulement la première occurrence de "word1".
Je ne peux pas le convertir en sets parce que j'ai besoin de connaissances sur les doublons (voir "word2" ci-dessus). Que faire?
26
demandé sur
kiritsuku
2013-04-29 15:58:45
2 réponses
Vous pouvez
val unwanted = list2.toSet
list1.filterNot(unwanted)
pour supprimer tous les articles de list2
. (Vous n'avez pas besoin de connaissances des doublons list2
.)
53
répondu
Rex Kerr
2013-04-29 21:41:53
Vous pouvez essayer ceci:
val list1 = List("word1","word2","word2","word3","word1")
val list2 = List("word1","word4")
println(list1.filterNot(list2.contains(_)))
7
répondu
cmbaxter
2013-04-29 12:03:18