资源说明: Java8新特性Stream的完全使用指南
Stream是Java 1.8版本开始提供的一个接口,主要提供对数据集合使用流的方式进行操作,流中的元素不可变且只会被消费一次,所有方法都设计成支持链式调用。使用Stream API可以极大提高生产力,写出高效率、干净、简洁的代码。
1. 获取Stream实例
Stream提供了静态构建方法,可以基于不同的参数创建返回Stream实例。使用Collection的子类实例调用stream()或者parallelStream()方法也可以得到Stream实例,两个方法的区别在于后续执行Stream其他方法的时候是单线程还是多线程。
2. filter方法
filter方法用于根据指定的条件做过滤,返回符合条件的流。例如,获取只包含正数的流可以使用filter方法。
3. map方法
map方法用于将流中的每个元素执行指定的转换逻辑,返回其他类型元素的流。例如,转换成字符串流可以使用map方法。
4. mapToInt、mapToLong、mapToDouble方法
mapToInt、mapToLong、mapToDouble这三个方法是对map方法的封装,返回的是官方为各个类型单独定义的Stream,该Stream还提供了适合各自类型的其他操作方法。
5. flatMap方法
flatMap方法用于将流中的每个元素转换成其他类型元素的流。如果要得到所有订单的所有商品汇总,就可以使用该方法。
6. flatMapToInt、flatMapToLong、flatMapToDouble方法
flatMapToInt、flatMapToLong、flatMapToDouble这三个方法是对flatMap方法的封装,返回的是官方为各个类型单独定义的Stream,使用方法同上。
7. distinct方法
distinct方法用于对流中的元素去重,判断元素是否重复使用的是equals方法。
8. sorted方法
sorted方法用于对流中的元素进行排序。sorted有一个无参和一个有参的方法,用于对流中的元素进行排序。
9. reduce方法
reduce方法用于对流中的元素进行规约操作,返回一个 Optional 类型的值。
10. collect方法
collect方法用于对流中的元素进行收集操作,返回一个 Collector 类型的值。
11. forEach方法
forEach方法用于对流中的元素进行遍历操作,用于执行某些操作。
12. findFirst方法
findFirst方法用于返回流中的第一个元素,如果流为空,则返回空的 Optional 对象。
13. findAny方法
findAny方法用于返回流中的任意一个元素,如果流为空,则返回空的 Optional 对象。
Stream的使用可以极大提高生产力,写出高效率、干净、简洁的代码。但是,需要注意的是,Stream的使用需要遵守一定的规则和约定,以免出现问题。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。