JDK8 --- Stream
Stream处理过程
流的创建
- 由值创建: Stream.of();
- 由数组创建: Arrays.stream();
- 由集合创建: Collection.stream();
- 由文件创建: Files.lines();
- 由函数创建: iterate()和generate();
中间处理函数
一个流后面可以跟零个或多个中间函数,也就是说中间处理函数的输入为一个流,经过处理后,输出为另一个新的流;
- map/flatMap: 对流中的元素进行处理;
- limit: 流截断;
- sorted/unordered: 排序/乱序;
- distinct:去重;
- filter:过滤;
终端处理函数
一个流只能有一个终端处理函数,并且为最后一个函数,终端操作执行完成后流被关闭;
- reduce: 将所有流中的结果汇聚到一个结果中,类似于MR中的Reduce阶段;
- collect: 将流转换为不同的类型,比如list、set和map等;
- foreach: 对流中的元素进行处理;
- 聚合函数: min/max/sort/average;
- 匹配:anyMatch、 allMatch、noneMatch;
- 查找: findFirst、 findAny;
参考: