大數據系列修煉-Scala課程38
核心內容:
1、List伴生對象操作方法代碼實戰
1、List伴生對象操作方法代碼實戰 |
List的object(伴生對象)中經常使用的方法:
1>apply:構造1個List實例對象
2>range:指定1個范圍是左閉右開的List對象,同時可以指定兩個元素之間的步長
3>zip:拉鏈操作、unzip:反拉鏈操作、將之前zip取得的集合結果進行反操作、生成兩個List集合
4>flatten與concat:將內部集合中的所有元素聯合構成1個新的集合,即統1構成1個List
實例程序1:
object regex
{ //apply
//apply:生成1個List對象
val list = List.apply(10,20,30) //> list : List[Int] = List(10, 20, 30)
val list1 = list.map((x:Int)=>x+10) //> list1 : List[Int] = List(20, 30, 40)
println(list1) //> List(20, 30, 40)
val list2 = List(10,20,30) //> list2 : List[Int] = List(10, 20, 30)
//range
val list3 = List.range(1 , 5) //> list3 : List[Int] = List(1, 2, 3, 4)
println(list3.mkString("[", "\t", "]")) //> [1 2 3 4]
println(List.range(10, 1, -2)) //> List(10, 8, 6, 4, 2)
//zip的拉鏈操作與unzip的反拉鏈操作
val list4 = "spark".toList //> list4 : List[Char] = List(s, p, a, r, k)
val list5 = List(1,2,3,4,5) //> list5 : List[Int] = List(1, 2, 3, 4, 5)
val list6 = list4.zip(list5) //> list6 : List[(Char, Int)] = List((s,1), (p,2), (a,3), (r,4), (k,5))
println(list6) //> List((s,1), (p,2), (a,3), (r,4), (k,5))
println(list6.mkString("[", "\t", "]")) //> [(s,1) (p,2) (a,3) (r,4) (k,5)]
val (a,b) = list6.unzip //> a : List[Char] = List(s, p, a, r, k)
//| b : List[Int] = List(1, 2, 3, 4, 5)
println(a) //> List(s, p, a, r, k)
println(b) //> List(1, 2, 3, 4, 5)
//flatten與concat:將集合中的所有元素聯合構成1個新的集合
val list7 = List(List("spark","hadoop"),List(10,20,30),List(80.8,98.8)).flatten
//> list7 : List[Any] = List(spark, hadoop, 10, 20, 30, 80.8, 98.8)
println(list7) //> List(spark, hadoop, 10, 20, 30, 80.8, 98.8)
val list8 = List.concat(List("spark","hadoop"),List(10,20,30),List(80.8,98.8))
//> list8 : List[Any] = List(spark, hadoop, 10, 20, 30, 80.8, 98.8)
println(list8) //> List(spark, hadoop, 10, 20, 30, 80.8, 98.8)
//map2操作:map2可以同時對兩個集合履行map操作
}