您好,登錄后才能下訂單哦!
package com.dt.scala.dataset object HelloList { def main(args: Array[String]): Unit = { //定義List,直接使用applay方法 val bigData = List("Spark","Hadoop") val data = List(1,2,3) //使用::定義列表 val bigData_core = "Spark"::"Hadoop"::Nil //:: Nil不能省略,"Spark"::"Hadoop" 這個語法是錯誤的 //Nil是空列表,并且::是右元素的方法,例如"Hadoop"::Nil :: 是Nil的方法 //等同于 val bigData_core2 = Nil.::("Hadoop") val data_Int = 1::2::3::Nil // 兩個列表合并,使用:::方法 val data_union = data ::: data_Int //判斷列表是否為空 data.isEmpty //取列表的頭部 data.head //對于List來說,第一個元素稱之為head,其余的所有元素成為tail data.tail.head //提前List中的元素 val List(a,b) = bigData //a="Spark" , b="Hadoop" println("a = "+a+" b = "+b) // 如果List中有多個元素,可以使用如下方式提取 val first::second::rest = data //rest代表剩余的List,返回的類型是List println("first:"+first+" ==== "+"second:"+second+" ==== "+"rest:"+rest) //first:1 ==== second:2 ==== rest:List(3) //使用模式匹配對List進(jìn)行排序操作 val shuffleData = List(9,3,2,10,3,34,1) def compute(data : Int,dataSet : List[Int]) : List[Int] = dataSet match { case List() => List(data) //如果dataSet為空,那么返回List(data) case head :: tail => { //如果dataSet不為空 if (data <= head) // data和第一個元素比較如果<=head則放到List的頭部 data :: dataSet else head :: compute(data,tail) //否則嵌套調(diào)用compute } } println(compute(10, shuffleData)) def sortList(data : List[Int]) : List[Int] = data match { case List() => List() case head :: tail => compute(head,sortList(tail)) } println(sortList(shuffleData)) } }
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。