1 为什么学习
1.现在很多公司在编程中大量使用函数式编程-Stream流格式代码,所以为了能够看懂公司的代码
2.大量数据下处理集合效率高--因为有并行流
3.代码可读性高
4.消灭嵌套地狱
2 函数式编程思想
2.1 概念
面向对象编程是关注于用对象完成什么事情。而函数式编程就像我们所学的数字中的函数。它关注的是对数据进行了什么样的处理
2.2 优点
- 代码简洁,快速开发
- 接近自然语言,容易理解
- 易于‘并发编程’
3 Lambda表达式
3.1 概述
Lambda表达式是JDK1.8的一个语法糖,它可以对某些匿名内部类的语法进行简写。是函数式编程的一个重要体现,让我们不用关注是什么对象,而且关注于对数据进行了什么样的操作
3.2 练习
3.2.1 练习1
我们有个calculateNum方法,现在我们通过匿名内部类的方式实现 就是13行到19行的代码,然后Lambda表达式的简写格式是 ()->{} ,()里面是参数,{}里面是具体的代码
这个时候我们就可以开始简写,简写完成后
3.2.2 练习2
有个printNum方法呢,我们也是通过匿名内部类的方式去实现,然后我们希望能够打印arr数组里面能被2整除的数也就是,13行到18行的代码,然后我们按照第一个案例的Lambda表达式的格式来
简写完成后,并打印
3.2.3 偷懒
当我们的代码可以通过lambda表达式来简写的时候,可以点击代码最右边的黄色区域,idea会自动帮我们简写,idea是不是很强大
4.省略规则
- ()里面的参数类型可以不写
- 方法体只有一句代码时,大括号和return和;可以简略不写
- 方法只有一个参数时,()可以不写
- 上面这3点记不住,可以省略不记
我们以例二为例子,它还可以简写成这个样