Stream:流水线

Stream : 流水线

流水线 : 对数据的一组操作

jdk8,添加了新的类java.util.Stream:
Java8中的Stream是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利高效的聚合操作,或者大批量数据操作
Stream的API结合Lambda表达式,极大的提高编程效率和程序可读性
同时它提供串行和并行两种模式进行操作

流操作
java.util.stream.Stream中的Stream接口定义了许多操作。
它们可以分为两大类。
==1,中间操作 ==: 可以连接起来的流操作
2,终端操作 : 关闭流的操作
终端操作会从流的流水线生成结果。
其结果是任何不是流的值,比如ListInteger,甚至void。
注:除非流水线上触发一个终端操作,否则中间操作不会执行任何处理。

使用流
流的使用一般包括三件事:
1,一个数据源(如集合)来执行一组操作;
2,一个中间操作链,形成一条流的流水线;
3,一个终端操作,执行流水线,并能生成结果。

==工具类:Collectors ==
java.util.stream.Collectors 类
主要作用就是辅助进行各类有用的操作。

eg:
把Stream中的元素进行过滤然后再转为List集合
List list = Arrays.asList(“test”,“hello”,“world”,“java”,“tom”,“C”,“javascript”);
List result = list.stream().filter(s->s.length()>4).collect(Collectors.toList());

串行和并行
串行Stream上的操作是在一个线程中依次完成
并行Stream则是在多个线程上同时执行

串行和并行的相互转换:
串行->并行
可以通过对收集源调用parallelStream方法来把集合转换为并行流。
对顺序流调用parallel方法把流转换成并行流。

并行->串行
只需要对并行流调用BaseStream下的sequential()方法就可以把它变成顺序流。

你可能感兴趣的:(Stream:流水线)