scala 数组匹配相同元素

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值