zoukankan      html  css  js  c++  java
  • scala 数据结构(九):-filter、化简

    1 filter

    filter:将符合要求的数据(筛选)放置到新的集合中

    应用案例:将 val names = List("Alice", "Bob", "Nick") 集合中首字母为'A'的筛选到新的集合。

    思考:如果这个使用传统的方式,如何完成?

    val names = List("Alice", "Bob", "Nick")
    def startA(s:String): Boolean = {
    s.startsWith("A")
    }
    val names2 = names.filter(startA)
    println("names=" + names2)

    2 化简:

    看一个需求: val list = List(1, 20, 30, 4 ,5) , 求出list的和.

    化简:将二元函数引用于集合中的函数,。 上面的问题当然可以使用遍历list方法来解决,这里我们使用scala的化简方式来完成。

    val list = List(1, 20, 30, 4, 5)
    def sum(n1: Int, n2: Int): Int = {
    n1 + n2
    }
    val res = list.reduceLeft(sum)
    println("res=" + res)

    //说明

    1) def reduceLeft[B >: A](@deprecatedName('f) op: (B, A) => B): B

    2)reduceLeft(f) 接收的函数需要的形式为 op: (B, A) => B): B

    3) reduceleft(f) 的运行规则是 从左边开始执行将得到的结果返回给第一个参数

    4) 然后继续和下一个元素运行,将得到的结果继续返回给第一个参数,继续..

    5) 即: //((((1 + 2) + 3) + 4) + 5) = 15

    reduceLefft(_ + _)这个函数的执行逻辑如图

    说明: .reduceRight(_ - _)反之同理

  • 相关阅读:
    左耳听风-ARTS-第4周(2019/4/21-2019/4/27)
    Java集合总结
    Zuul网关总结
    左耳听风-ARTS-第3周(2019/4/7-2019/4/13)
    左耳听风-ARTS-第2周(2019/3/31-2019/4/6)
    Java泛型相关总结(下)
    左耳听风-ARTS-第1周
    去长江边走走,看看
    第1记
    c#发送邮件
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/13264438.html
Copyright © 2011-2022 走看看