赞
踩
函数名 | 功能 |
---|---|
foreach | 遍历集合 |
map | 对集合进行转换 |
flatmap | 进行扁平化操作 |
filtter | 过滤出指定的集合 |
sorted | 对集合元素按照默认排序 |
sortBy | 按照指定字段排序 |
sortWith | 自定义排序 |
groupBy | 按照指定条件分组 |
reduce | 聚合操作 |
fold | 折叠计算 |
案例代码
def main(args: Array[String]): Unit = {
// 定义一个列表
val list1 = List(1,2,3,4)
// 遍历每个元素,并且对每个元素进行操作,x为遍历的每个元素
list1.foreach( (x:Int) => println(x))
list1.foreach(x => println(x))
list1.foreach(println(_))
}
案例代码
def main(args: Array[String]): Unit = {
val list1 = List(1,2,3,4)
val test = list1.map((x:Int) => { //x=>(1,2,3,4) 遍历x
"*" * x
}) //(1,2,3,4) =>(*,**,***,****)
// 类型推断
val test1 = list1.map(a => "*" * a)
// 下划线
val test2 = list1.map("*" * _)
for (elem <- test) println(elem)
}
先map然后再flatten
案例代码:
def main(args: Array[String]): Unit = {
// 将列表 “hadoop hive spark flink flume”,"kafka hbase sqoop storm"
// 转换成单独的单词,并且放到一个list中
val list = List("hadoop hive spark flink flume", "kafka hbase sqoop storm")
val test = list.flatMap((x:String)=>{
x.split(' ')
})
println(list)
print(test)
}
案例代码:
def main(args: Array[String]): Unit = {
// 过滤数字列表中的偶数:
// List(1,2,3,4,5,6,7,8,9)
val list1 = List(1,2,3,4,5,6,7,8,9)
val list2 = list1.filter(_%2!=0)
println(list2)
}
案例代码:
def main(args: Array[String]): Unit = {
// 定义一个列表,包含以下元素:3,1,2,9,7
// 2.对列表进行升序排序
// 3.对列表进行降序排序
val list = List(3,1,2,9,7,15)
// 默认升序排列
val upSort = list.sorted
println(upSort)
// 降序:将升序后的列表倒序就是降序
val downSort = list.sorted.reverse
println(downSort)
}
案例代码:
def main(args: Array[String]): Unit = {
//根据列表List("01 hadoop","02 flume","03 kafka","04 redis")
val list = List("01 hadoop","02 flume","03 kafka","04 redis")
val test = list.sortBy((x:String)=>{
// 将字符串切割成不同的字段
val dd = x.split(' ')
// 按照第二个字段排序
dd(1)
})
println(test)
}
案例代码:
def main(args: Array[String]): Unit = {
// 对List(12,3,4,1,6,8,7)进行降序排序
val list = List(12,3,4,1,6,8,7)
val test = list.sortWith((x,y) => {
// 降序
x > y
// 升序
// x < y
})
println(test)
}
案例代码:
def main(args: Array[String]): Unit = {
val list = List("胡歌"->"男", "杨幂" -> "女","吴彦祖" -> "男","胡歌" -> "男")
// 按性别分组
val test = list.groupBy(x => x._2)
// 结果为Map('男'->list("胡歌"->"男","吴彦祖" -> "男","胡歌" -> "男"),‘女’->list( "杨幂" -> "女",))
println(test)
// 统计人数
val mapDd = test.map(x => (x._1,x._2.size))
println(mapDd)
}
案例代码:
def main(args: Array[String]): Unit = {
// 定义一个列表,包含:1,2,3,4,8,5,6,7,9,10
// 计算列表的和
val list = List(1,2,3,4,8,5,6,7,9,10)
val sum = list.reduce(_ + _)
// list.reduce((a,b) => { a + b })
println(sum)
}
案例:
def main(args: Array[String]): Unit = { //1. 定义列表:记录学生的成绩,格式为:姓名,语文成绩,数学成绩,英语成绩,学生信息如下:("张三",37,90,100),("李四",90,71,81),("赵六",59,21,72),("田七",100,100,100),("赵甲第",98,99,83) val info = List(("张三",37,90,100),("李四",90,71,81),("赵六",59,21,72),("田七",100,100,100),("赵甲第",98,99,83)) //2. 获取所有语文成绩在60分及以上的同学信息 val chinese = info.filter(x => { x._2 >= 60 }) println("语文及格:"+chinese) //3. 获取所有学生的总成绩 val sum = info.map(x => { val all = x._2 + x._3 + x._4 (x._1 , x._2 , x._3 , x._4 , all) }) println("成绩总和:"+sum) //4. 按照总成绩降序排列 val sort1 = sum.sortWith((_._5 > _._5)) println("降序排序:"+sort1) }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。