Scala 序列差

Scala 序列差,scala,set,difference,Scala,Set,Difference,找到两个序列A和B的差(补)D的最佳方法是什么,其中D=A-B是属于A但不属于B的所有对象的序列。例如: val A = Seq((1,1), (2,1), (3,1), (4,1), (5,1)) val B = Seq((1,1), (5,1)) 要获得: val D = Seq((2,1), (3,1), (4,1)) 使用B元素过滤A及其子集似乎不是“长”序列的有效解决方案。还有其他想法吗?您可以使用集合。SeqLike.diff方法: scala> val A = Seq((

找到两个序列A和B的差(补)D的最佳方法是什么,其中D=A-B是属于A但不属于B的所有对象的序列。例如:

val A = Seq((1,1), (2,1), (3,1), (4,1), (5,1))
val B = Seq((1,1), (5,1))
要获得:

val D = Seq((2,1), (3,1), (4,1))

使用B元素过滤A及其子集似乎不是“长”序列的有效解决方案。还有其他想法吗?

您可以使用
集合。SeqLike.diff
方法:

scala> val A = Seq((1,1), (2,1), (3,1), (4,1), (5,1))
A: Seq[(Int, Int)] = List((1,1), (2,1), (3,1), (4,1), (5,1))

scala> val B = Seq((1,1), (5,1))
B: Seq[(Int, Int)] = List((1,1), (5,1))

scala> val D = A diff B
D: Seq[(Int, Int)] = List((2,1), (3,1), (4,1))