1. 程式人生 > >scala 陣列匹配相同元素

scala 陣列匹配相同元素

接下來的操作大家都熟知:差集、交集和並集。以下示例能很好地解釋 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
  }