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(_ - _)反之同理

最新文章

  1. Excel 导出
  2. R----Shiny包介绍学习
  3. OWIN的理解和实践(二) – Host和Server的开发
  4. js发起长轮询获取推送消息
  5. 管理工具 Kafka Manager
  6. Ubuntu下开发环境搭建
  7. CTR预估中的贝叶斯平滑方法及其代码实现
  8. GUI编程实战
  9. PE知识复习之PE扩大节
  10. goroutine 和线程的区别
  11. java语言 找出文章中出现次数最多的单词
  12. 【Python】Flask系列-URL和视图笔记
  13. Java常考面试题(二)
  14. 新手C#SQLServer在程序里实现语句的学习2018.08.12
  15. Cloudstack安装(二)
  16. Oracle多行数据的合并
  17. django基础复习
  18. Android开发日记(七)
  19. ssh原理与应用
  20. Python 小知识点(9)--反射

热门文章

  1. 2w字长文!手撸一套 Java 基础面试题
  2. 关于宝塔面板ftp+sublime
  3. 跟着视频学python,Day1
  4. Django自定义500的错误显示信息
  5. VS Code WebApi系列——2、jwt结合数据库校验
  6. 04.开发REST 接口
  7. [转载] WLAN:BSS,ESS,SSID
  8. Day8-微信小程序实战-交友小程序-首页用户列表渲染及多账号调试及其点赞功能的实现
  9. EM(最大期望)算法推导、GMM的应用与代码实现
  10. const变量的修改