JDK8 --- Stream

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangguosb/article/details/86700491

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;

参考:

  1. 流的创建:https://blog.csdn.net/qq_33429968/article/details/76380499
  2. https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/index.html

猜你喜欢

转载自blog.csdn.net/yangguosb/article/details/86700491