Stream流的用法

1.不可变的集合

1.应用场景

Stream流的用法_第1张图片

2.常用API

Stream流的用法_第2张图片

1.用法

Stream流的用法_第3张图片

map就比较特别

Stream流的用法_第4张图片

当map中元素大于10个键值对的时候

JDK10之前

Stream流的用法_第5张图片

JDK10之后

Stream流的用法_第6张图片

2.总结

Stream流的用法_第7张图片

2.Stream流的用法

不用关心方法体,只需要关心入参和返回参数,格式:(...)->业务代码,ATT+回车(恢复原始的方法体)

Stream流的用法_第8张图片

无返回值的时候

Stream流的用法_第9张图片

1.stream的debug查看

Stream流的用法_第10张图片

快速创建方法的快捷键:Ctrl+Alt+m

2.创建流的方式

Stream流的用法_第11张图片

Stream流的用法_第12张图片

3.中间操作

1.filter过滤的操作

Stream流的用法_第13张图片

2.map(元素转换或者计算)

Stream流的用法_第14张图片

Stream流的用法_第15张图片

计算

Stream流的用法_第16张图片

3.distinct去重

Stream流的用法_第17张图片

重写方法

Stream流的用法_第18张图片

4.sorted(元素排序)

Stream流的用法_第19张图片

空参的时候

Stream流的用法_第20张图片

Stream流的用法_第21张图片

有参的时候

Stream流的用法_第22张图片

5.limit(限制流的大小)

Stream流的用法_第23张图片

6.skip(跳过流中当前n个元素)

Stream流的用法_第24张图片

7.flatMap(把一个对象转换成另一个对象)

例子1

Stream流的用法_第25张图片

Stream流的用法_第26张图片

例子2:字符串分割

Stream流的用法_第27张图片

4.终结操作

1.forEach(遍历元素)

Stream流的用法_第28张图片

2.count(统计元素个数)

Stream流的用法_第29张图片

3.max和min(获取元素最值)

Stream流的用法_第30张图片

4.collect(将元素转换成List,Set,Map)

Stream流的用法_第31张图片

5.reduce归并

两个参数的

Stream流的用法_第32张图片

例子

Stream流的用法_第33张图片

Stream流的用法_第34张图片

一个参数的时候(较为简便)

Stream流的用法_第35张图片

例子

Stream流的用法_第36张图片

5.查找与匹配

1.anyMatch(查询出是否够有任意元素符合条件,返回boolean类型)

Stream流的用法_第37张图片

2.allMatch(判断是否所有的元素都符合条件,返回boolean类型)

Stream流的用法_第38张图片

3.noneMatch(是否所有的元素都没有,返回boolean类型)

Stream流的用法_第39张图片

4.finAny(获取任意一个符合条件的元素,返回指定的值)

注意空指针异常所以用了optional

5.findFirst(获取流中第一个元素)

也使用optional做空指针处理

Stream流的用法_第40张图片

6.使用流注意事项

Stream流的用法_第41张图片

3.Optional(使用流的时候做一个空指针异常处理)

1.概述(使用流判断空指针异常)

Stream流的用法_第42张图片

2.创建对象

Stream流的用法_第43张图片

Stream流的用法_第44张图片

3.安全的消费值

Stream流的用法_第45张图片

4.安全获取值

Stream流的用法_第46张图片

5.过滤

Stream流的用法_第47张图片

6.判断返回的是布尔类型

Stream流的用法_第48张图片

7.数据转换

Stream流的用法_第49张图片

4.函数式接口

1.概念

Stream流的用法_第50张图片

2.常见的函数式接口

Stream流的用法_第51张图片

Stream流的用法_第52张图片

Stream流的用法_第53张图片

Stream流的用法_第54张图片

3.常见的默认方法(一般来说是自定义的比较会用到)

Stream流的用法_第55张图片

自定义的时候

Stream流的用法_第56张图片

Stream流的用法_第57张图片

Stream流的用法_第58张图片

5.方法引用

Stream流的用法_第59张图片

1.基本格式:类名或者对象名::方法名

2.引用类的静态方法

Stream流的用法_第60张图片

简化写法

Stream流的用法_第61张图片

3.引用对象的实例方法

Stream流的用法_第62张图片

简化写法

Stream流的用法_第63张图片

4.类的实例方法

Stream流的用法_第64张图片

Stream流的用法_第65张图片

5.构造器引用

Stream流的用法_第66张图片

Stream流的用法_第67张图片

6.基本数据类型的优化(防止普通的流用法装箱拆箱操作过多)

Stream流的用法_第68张图片

优化之后的代码

Stream流的用法_第69张图片

6.并行流

Stream流的用法_第70张图片

Stream流的用法_第71张图片

你可能感兴趣的:(java)