scala入门系列(三) - 函数 map filter left right flod flatten flatmap

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)

  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值