scala元組及拉鍊操做:數組
scala裏面的元組是但是不一樣數據類型的ui
scala> ("scala",1)es5
res45: (String, Int) = (scala,1)spa
scala> val t = ("scala",100L,3.14,("spark",1))scala
t: (String, Long, Double, (String, Int)) = (scala,100,3.14,(spark,1))ip
scala> t._1 //元組內空的提取,如下標爲1開始,並用._後跟數字的方式進行提取內容spark
res46: String = scalaio
scala> t._3table
res47: Double = 3.14變量
scala> t._4._1
res48: String = spark
scala> val t,(a,b,c,d) = ("scala",100L,3.14,("spark",1)) //能夠定義元組時給予變量名,如 t,(a, b, c, d),使用時直接用變量名a,b,c,d便可訪問對應內容
t: (String, Long, Double, (String, Int)) = (scala,100,3.14,(spark,1))
a: String = scala
b: Long = 100
c: Double = 3.14
d: (String, Int) = (spark,1)
scala> a
res49: String = scala
scala> val arr = Array(("tingting",1),("ningning",3),("huihui",5))
arr: Array[(String, Int)] = Array((tingting,1), (ningning,3), (huihui,5))
scala> val mp = arr.toMap
mp: scala.collection.immutable.Map[String,Int] = Map(tingting -> 1, ningning -> 3, huihui -> 5)
scala拉鍊操做:
scala> val arr1 = Array("dog","cat","mouse")
arr1: Array[String] = Array(dog, cat, mouse)
scala> val arr2 = Array(1,3,5)
arr2: Array[Int] = Array(1, 3, 5)
scala> arr1 zip arr2 //拉鍊操做符
res50: Array[(String, Int)] = Array((dog,1), (cat,3), (mouse,5))
scala> arr2 zip arr1 //拉鍊操做符
res51: Array[(Int, String)] = Array((1,dog), (3,cat), (5,mouse))
scala> arr1.zip(arr2) //拉鍊操做符
res52: Array[(String, Int)] = Array((dog,1), (cat,3), (mouse,5))
scala> val arr3 = Array(1,2,3,4,5) //生成一個比arr1元素多的數組,用少的去zip多的
arr3: Array[Int] = Array(1, 2, 3, 4, 5)
scala> arr1 zip arr3 //會把長的給截取掉了
res53: Array[(String, Int)] = Array((dog,1), (cat,2), (mouse,3))