Ответ 1
Вы можете
val unwanted = list2.toSet
list1.filterNot(unwanted)
удалить все элементы в list2
. (Вам не нужно знать дубликаты в list2
.)
У меня есть два списка:
val list1 = List("word1","word2","word2","word3","word1")
val list2 = List("word1","word4")
Я хочу удалить все вхождения элементов list2
из list1
, т.е. хочу
List("word2","word2","word3") <= list1 *minus* list2
Я сделал list1 diff list2
который дает мне List("word2","word2","word3","word1")
, который удаляет только первое вхождение "word1".
Я не могу преобразовать его в набор, потому что мне нужны знания о дубликатах (см. выше "word2" ). Что делать?
Вы можете
val unwanted = list2.toSet
list1.filterNot(unwanted)
удалить все элементы в list2
. (Вам не нужно знать дубликаты в list2
.)
Вы можете попробовать следующее:
val list1 = List("word1","word2","word2","word3","word1")
val list2 = List("word1","word4")
println(list1.filterNot(list2.contains(_)))
val list1 = List("word1","word2","word2","word3","word1")
val list2 = List("word1","word4")
list1 diff list2
Это сделает это.