zoukankan      html  css  js  c++  java
  • scala中的高阶函数

    高阶函数

    1. val list =List(1,2,3,4,5,6,7,8)
    2. val newList = list.map((x:Int) => 2*x) //map表示映射list中的每一个元素的值为原来的2倍
    3. //newList中的值为
    4. 2,4,6,8,10,12,14,16
    5. 也可直接写成
    6. val newList = list.map(x => 2*x)
    7. 也可等价写成
    8. val newList = list.map(2*_)

    map函数相当于foreach

    集合Set

    1. val s = Set(1,2,1)
    2.  
    3. //则s中的结构为
    4. s = Set(1,2)

    集合元组

    1. val hostPort = ("localhost","8080")
    2.  
    3. //则hostPort中的结构为
    4. hostPort: (String,String) = (localhost,8080)

    访问元组中的元素

    1. hostPort._1
    2. //输出结果为
    3. localhost
    1. //通过下面的方式也可以产生一个元组
    2. "a" -> "b"
    3.  
    4. //元组的结构为
    5. (String,String) = (a , b)
    6. //产生一个Map
    7. Map("a" -> "b")
    8.  
    9. //该map的结构为
    10. Map(String,String) = Map(a -> b)

    filter的使用

    1. val list = List(1,2,3,4,5,6)
    2. list.filter(x => x%2==0) //择取偶数
    3. //结果为
    4. List(2,4,6)

    zip的使用

    1. val a = List(1,2,3)
    2. val b = List(4,5,6)
    3. a.zip(b) //使a中的元素与b中对应位置的元素配成对,也可写成 a zip b
    4. //结果为
    5. List[(Int,Int)] = List((1,4),(2,5),(3,6))

    partition的使用,将一个集合分割成子集合

    1. //把奇数和偶数分隔开
    2. val a = List(1,2,3,4,5,6)
    3. a.partition(_%2==0)
    4. //结果为
    5. (List[Int],List[Int])= (List(2,4,6),List(1,3,5))

    flatten的使用,扁平化

    1. val a = List(List("a","b"),List("c","d")).flatten
    2. //结果为
    3. List[String] = List(a,b,c,d)

    flatMap = flat + map(扁平化+ 遍历)

    1. var a = List(list(1,2),List(3,4))
    2. a.flatMap(x => x.map(_ * 2)) //先将a扁平化,然后遍历(map),即将扁平后的每一个元素放入x中,然后乘以2
    3. //结果为
    4. Lsit[Int] = List(2,4,6,8)
  • 相关阅读:
    ORACLE同义词
    eclipse如何检出项目的jar包
    2020-04-03
    十大经典排序算法
    2020-03-30
    world文档设置表格自定义序列
    2020面试记录
    java如何用一个循环实现两个有序数组合并成一个有序数组
    2020-1-8
    好物推荐之抽纸
  • 原文地址:https://www.cnblogs.com/wyhuang/p/3918607.html
Copyright © 2011-2022 走看看