JDK8的新特性-Stream

JDK8的新特性-Stream_第1张图片
Java8新特性


为什么需要引入Stream?

Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出现的 Lambda 表达式,极大的提高编程效率和程序可读性。同时它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用 fork/join 并行方式来拆分任务和加速处理过程。通常编写并行代码很难而且容易出错, 但使用 Stream API 无需编写一行多线程的代码,就可以很方便地写出高性能的并发程序。所以说,Java 8 中首次出现的 java.util.stream 是一个函数式语言+多核时代综合影响的产物。

Stream使用用途:

1. Filter方法:以前要统计list内数据的个数必须采用外部迭代的形式来操作,for循环操作其实是调用迭代接口进行而已,而java给我们提供了通过Stream的filter方法,其实stream还提供了map,flatMap,max,min等方法。

2.map方法:map提供了将list内数据转换的功能,数据转换在java8前我们会将一个list馁的数据转换后放入另一个list,但是java中只需要作一个map.

3.flatmap方法: 可以将多个stream合并为一个stream再进行操作,flatMap方法返回一个stream

4.Max方法和Min方法则是通过Stream找出list内最大值和最小值。

你可能感兴趣的:(JDK8的新特性-Stream)