接下来的操作大家都熟知:差集、交集和并集。以下示例能很好地解释 Euler Diagram 函数:
val num1 = Seq(1, 2, 3, 4, 5, 6)
val num2 = Seq(4, 5, 6, 7, 8, 9)
//List(1, 2, 3)num1.diff(num2)
//List(4, 5, 6)num1.intersect(num2)
//List(1, 2, 3, 4, 5, 6, 4, 5, 6, 7, 8, 9)num1.union(num2)
上述示例中的 union保留了重复的元素。如果我们不需要重复怎么办?这时可以使用 distinct函数:
//List(1, 2, 3, 4, 5, 6, 7, 8, 9)num1.union(num2).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
}