程序员人生 网站导航

大数据系列修炼-Scala课程38

栏目:框架设计时间:2016-11-29 08:38:11

大数据系列修炼-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) //flattenconcat:将集合中的所有元素联合构成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操作 }
------分隔线----------------------------
------分隔线----------------------------

最新技术推荐