Java流(Stream)式编程-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

流式编程

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

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

常见流创建方式

常见流的方法

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

操作流

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                 返回流中任意一个元素

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

并行流

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

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

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

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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Java