Java流(Stream)式编程

流式编程

Stream作为Java 8的一大亮点,它专门针对集合的各种操作提供各种非常便利,简单,高效的API,Stream API主要是通过Lambda表达式完成,极大的提高了程序的效率和可读性。

流式编程的概念基于函数式编程的思想,旨在简化代码,提高可读性和可维护性。

常见流创建方式

Java流(Stream)式编程_第1张图片

常见流的方法

流的操作方法一般分为:获取流 操作流 结束流

操作流

map                map 方法用于映射每个元素到对应的结果

filter                filter 方法用于通过设置的条件过滤出元素。

skip                 skip方法用于跳过指定数量的流。

limit                 limit 方法用于获取指定数量的流。

sorted             sorted 方法用于对流进行排序。

结束流

peek: peek是一个中间操作方法,它接受一个Consumer函数作为参数,对流中的每个元素执行该函数。与forEach不同的是,peek方法会返回一个新的流,该流中的元素和原始流中的元素相同。

流的中间操作是惰性的,如果一个流操作流程中只有中间操作,没有终结操作,那么这个流什么都不会做,整个流程中会一直等到遇到终结操作操作才会真正的开始执行。

forEach           forEach来迭代流中的每个数据

聚合操作(reduce 和 collect)

reduce和collect都是Stream API中用于聚合操作的方法,它们可以将流中的元素进行汇总、计算和收集。

Collectors       Collectors 类实现了很多归约操作,例如将流转换成集合和聚合元素

匹配操作(allMatch(所有)、anyMatch(至少一个) 和 noneMatch(没有一个))是否满足条件 (返回值 true/false)

count min max 统计操作 元素数量 最小值 最大值

查找操作

findFirst                返回流中第一个元素

findAny                 返回流中任意一个元素

Java流(Stream)式编程_第2张图片

Java流(Stream)式编程_第3张图片

Stream 对象是一种一次性使用的对象,它只能被消费一次。一旦对 Stream 执行了终止操作(如收集结果、遍历元素),Stream 就会被关闭,后续无法再使用。

并行流

并行流是 Java 8 Stream API 中的一个特性。它可以将一个流的操作在多个线程上并行执行,以提高处理大量数据时的性能。

parallel()   顺序流转换为并行流

使用并行流要注意线程安全问题

在某些操作中性能并不好(如: sorted)

你可能感兴趣的:(JAVA,java,windows)