大數(shù)據(jù)系列修煉-Scala課程38
核心內(nèi)容:
1、List伴生對(duì)象操作方法代碼實(shí)戰(zhàn)
1、List伴生對(duì)象操作方法代碼實(shí)戰(zhàn) |
List的object(伴生對(duì)象)中經(jīng)常使用的方法:
1>apply:構(gòu)造1個(gè)List實(shí)例對(duì)象
2>range:指定1個(gè)范圍是左閉右開的List對(duì)象,同時(shí)可以指定兩個(gè)元素之間的步長(zhǎng)
3>zip:拉鏈操作、unzip:反拉鏈操作、將之前zip取得的集合結(jié)果進(jìn)行反操作、生成兩個(gè)List集合
4>flatten與concat:將內(nèi)部集合中的所有元素聯(lián)合構(gòu)成1個(gè)新的集合,即統(tǒng)1構(gòu)成1個(gè)List
實(shí)例程序1:
object regex
{ //apply
//apply:生成1個(gè)List對(duì)象
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:將集合中的所有元素聯(lián)合構(gòu)成1個(gè)新的集合
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可以同時(shí)對(duì)兩個(gè)集合履行map操作
}