- 将流转化为一个数组
toArray()toArray(generator)该方法会将元素保存在generator中 , 而不是创建一个新的并返回
- 在每个流元素上应用某个终结操作
forEach(Consumer)在每个元素上调用Consumer方法forEachOrdered(Consumer)该版本确保对元素的操作顺序是原始的流顺序
- 收集操作
collect(Collector)相当复杂的一个方法,可以将所有元素存入我们给出的Collector容器中 。
- 本方法主要复杂在,我们实际上可以使用
java.util.stream.Collectors文档中相当多的对象,而且其中有一部分很复杂比如如果我们希望放入一个TreeSet中使它们总是有序,那么我们可以使用Collectors.toCollection(TreeSet::new)来创建该容器并应用
- 本方法主要复杂在,我们实际上可以使用
collect(Supplier, BiConsumer, BiConsumer)- 在极小情况下,我们无法从
Collectors类中找到我们想要的处理容器,那么就需要第二个方法
- 在极小情况下,我们无法从
- 组合所有的流元素
reduce(BinaryOperator)组合所有元素,组合的方法就是参数方法reduce(identity, BinaryOperator)以identity为初始值组合所有元素,方法为第二个参数reduce(identity, BiFunction, BinaryOperator)复杂,未作介绍
- 匹配,都是根据Predicate返回一个布尔值
allMatch(Predicate)anyMatch(Predicate)noneMatch(Predicate)
- 选择一个元素
findFirst()返回一个包含流中第一个元素的Optional对象,若流中没有元素即返回Optional.emptyfindAny()返回一个包含流中任意一个元素的Optional对象 , 若流中没有元素则为Optional.empty
- 不过需要注意的是,该方法对于非并行的流似乎总是会选择流中的第一个元素,如果是并行的则随机
- 获取流相关的信息
count()计算流中元素数量max(Comparator)通过Comaprator获取流中最大的元素min(Comparator)通过Comparator获取流中最小的元素- 如果是数值化的流,除了上面这些,还有以下方法
average()获得平均值sum()获得累加值summaryStatics()返回可能有用的摘要数据,基本没什么用
推荐阅读
- 2022,一个Java程序猿的外设配置
- 2022,一个Java程序猿的装机配置
- Java 多线程写zip文件遇到的错误 write beyond end of stream!
- 1 JAVA语言学习-面向对象
- Java 19 新功能介绍
- Java线程未捕获异常处理 UncaughtExceptionHandler
- 死磕面试系列,Java到底是值传递还是引用传递?
- 【Java复健指南09】项目练习全解--房屋出租系统
- Java集合精选常见面试题
- React 函数组件
