接下来的操作大家都熟知:差集、交集和并集。以下示例能很好地解释 Euler Diagram 函数:
val
num
1
=
Seq(
1
,
2
,
3
,
4
,
5
,
6
)
val
num
2
=
Seq(
4
,
5
,
6
,
7
,
8
,
9
)
//List(1, 2, 3)
num
1
.diff(num
2
)
//List(4, 5, 6)
num
1
.intersect(num
2
)
//List(1, 2, 3, 4, 5, 6, 4, 5, 6, 7, 8, 9)
num
1
.union(num
2
)
上述示例中的 union
保留了重复的元素。如果我们不需要重复怎么办?这时可以使用 distinct
函数:
//List(1, 2, 3, 4, 5, 6, 7, 8, 9)
num
1
.union(num
2
).distinct
快速匹配的函数:
def matchCells(a:Array[String] , y:Array[String]) = {
var sum = 0
for(x <- a){
if(a.exists({ y: String => y == x })){
sum += 1
}
}
sum
}
def matchCells2(a:Array[String] , y:Array[String]) = {
a.toSeq.intersect(y.toSeq).length
}