Is there any efficient way of removing elements present in Seq one
from Seq two
val one = Seq("A", "B")
val two = Seq("A", "B", "C", "E", "F")
val out = two.map {
for (n <-one){
_.filterNot(_ == n)
}
}
expected output Seq("C", "E", "F")
, empty or null of one
should also be handled
But I'm getting error Cannot resolve overloaded method 'map'
can anyone suggest what am doing wrong here ?
CodePudding user response:
This is the simplest way to do this efficiently:
two.filterNot(one.toSet.contains)
This uses contains
to see whether an item is in one
or not. one
is converted to a Set
as this implements contains
more efficiently that Seq
which does a linear search.