Scala:序列差异

Scala: Sequence 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 及其子集似乎不是 'long' sequences.Any 其他想法的有效解决方案?

您可以使用collection.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))