zor*_*ork 2 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))
Run Code Online (Sandbox Code Playgroud)
要得到:
val D = Seq((2,1), (3,1), (4,1))
Run Code Online (Sandbox Code Playgroud)
用B元素过滤A及其子集似乎不是"长"序列的有效解决方案.还有其他想法吗?
你可以使用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))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
341 次 |
| 最近记录: |