学习目标
- Lambda表达式
- 函数式思想
- 函数式接口
- Lambda表达式的使用前提
- Lambda表达式的操作案例
- Stream流
- Stream流的优势
- Stream流-获取功能
- Stream流-中间功能
- Stream流-终结功能
- 多线程入门
- 多线程实现的方式
- Thread类常用功能
1. Lambda表达式
1.1 Lambda表达式的优势 ?
简化代码
1.2 Lambda表达式使用前提 ?
接口是函数式接口
1.3 Lambda和匿名内部类区别
所需类型不同 | 使用限制不同 | |
---|---|---|
匿名内部类 | 可以是接口,也可以是抽象类,还可以是具体类 | 如果接口中多于一个抽象方法,只能使用匿名内部类,而不能使用Lambda表达式 |
Lambda表达式 | 只能是函数式接口 | 如果接口中有且仅有一个抽象方法需要重写,可以使用Lambda表达式,也可以使用匿名内部类 |
2. Stream流
2.1 Stream流存在的优势 , 什么时候使用Stream流 ?
- 可以将数据放到流水线上,操作处理得到想要的数据,简化代码,对集合功能的增强
操作一个集合的对象筛选,去重,转换类型等操作 - Stream 就如同一个迭代器(Iterator),单向,不可往复,数据只能遍历一次,遍历过一次后即用尽了,就好比流水从面前流过,一去不复返
2.2 Stream流中常用API有哪些 ?
| Streamlimit(long maxSize):截**取指定参数个数的数据 | | —- | | Stream skip(long n): 跳过指定参数个数的数据 | | staticStream 合并**a和b两个流为一个流 | |concat(Stream a, Stream b): Stream map(Function<? super T,? extends R> mapper) : 将流中的元素类型进行转换 | | Stream distinct():去除流中重复的元素。依赖(hashCode和equals方法) | | Stream sorted () : 将流中元素按照自然排序的规则排序 | | Stream sorted (Comparator<? super T> comparator) : 将流中元素按照自定义比较器规则排序 |
3. 多线程实现的方式
3.1 多线程实现方式区别 ?
| 继承Thread类
| 实现Runnable接口
| 实现Callable接口
| | —- | —- | —- | | 简单,可以直接使用Thread类中功能
| 简单,不能直接使用Thread类中功能
| 复杂,不能直接使用Thread类中功能
| | 没有返回值
| 没有返回值
| 可以有任意类型返回值
| | 只能捕获
| 只能捕获
| 可以抛出,也可以捕获
| | 只能继承Thread类
| 还可以继承其他的类,拓展性强
| 还可以继承其他的类,拓展性强
|
4. 当日问题小结
4.1 当日遇到的问题
4.2 出现问题原因
4.3 解决问题方案
若有收获,就点个赞吧