object FunApp {
def main(args: Array[String]): Unit = {
val l = List(1,2,3,4,5,6,7,8)
//map操作的是l的每一个元素
val l2 = l.map(x=>x*2)
println(l2)
// _ 表示前面的每一个元素
val l3 = l.map(_*2)
println(l3)
//filter 表示对元素进行过滤
val l4 = l.map(_*2).filter(_>10)
println(l4)
//take表示取前2各元素
println(l3.take(2))
//reduce 对集合进行累加
val l5 = l.reduce(_+_)
println(l5)
//left 左向右进行操作
val l6=l.reduceLeft((x,y)=>{
println(x+" : " +y)
x-y
})
println(l6)
/* 结果
1 : 2
-1 : 3
-4 : 4
-8 : 5
-13 : 6
-19 : 7
-26 : 8
-34
*/
//right 右向左进行操作
val l7=l.reduceRight((x,y)=>{
println(x+" : " +y)
x-y
})
println(l7)
/*
7 : 8
6 : -1
5 : 7
4 : -2
3 : 6
2 : -3
1 : 5
-4
*/
//指定初始值
val l8=l.fold(10)((x,y)=>{
println(x+" : "+y)
x+y
})
println(l8)
/*
10 : 1
11 : 2
13 : 3
16 : 4
20 : 5
25 : 6
31 : 7
38 : 8
46
*/
val a = List(List(1,2),List(3,4),List(5,6))
println(a)
val a1 =a.flatten
println(a1)//List(1,2,3,4,5,6) 压平
val a2 = a1.map(_ * 2)
println(a2)
//flatMap = flatten+map
val a3 = a.flatMap(_.map(_ * 2))
println(a3)
}
}
scala入门系列(三) - 函数 map filter left right flod flatten flatmap
最新推荐文章于 2022-11-23 08:53:32 发布