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进行排序操作
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) //否则嵌套调用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))
}
}
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。