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))
找出两个序列 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))