推广 热搜: page  关键词  链接  搜索  红书  获取  哪些  数据分析  服务  数据 

Java 8 Stream流常用操作

   日期:2024-12-26     作者:s14ol    caijiyuan   评论:0    移动:https://sicmodule.kub2b.com/mobile/news/10440.html
核心提示:1 filter过滤操作 方法接受一个类型的参数,用于过滤Stream中的元素,并返回符合条件的元素组成的新Stream。map映射

1 filter过滤操作

方法接受一个类型的参数,用于过滤Stream中的元素,并返回符合条件的元素组成的新Stream。map映射操作

 
2 map映射操作

方法接受一个类型的参数,用于将一个元素转换为另一个元素,并返回一个新的Stream。

 

3 flatMap扁平化操作

方法与方法类似,不同之处在于方法的参数是一个函数,该函数将一个元素映射成一个Stream,最终将这些Stream合并成一个新的Stream。

 

4 distinct去重操作

方法会返回一个去除重复元素后的新Stream。

 

5 sorted排序操作

方法接受一个可选的比较器,将Stream中的元素按照指定方式(默认为自然顺序)进行排序,返回一个新的Stream。

 

可以通过传递一个比较器来指定排序方式

 

6 peek查看操作

方法接受一个类型的参数,可以在Stream中的每个元素执行所提供的操作,该方法不会影响Stream的元素。

 

7 limit截取操作

方法用于截取Stream中指定数量的元素,返回一个新的Stream。

 

2.2 终止操作

2.2.1 forEach遍历操作

方法接受一个类型的参数,对Stream中的每个元素执行所提供的操作。

 

2.2.2 toArray转换为数组操作

方法将Stream中的元素转换为一个数组。

 

2.2.3 reduce规约操作

方法用于将Stream中的所有元素结合成一个结果。它接受一个类型的参数,该参数定义了对Stream中的元素进行连续计算的方式。

 

2.2.4 collect收集操作

方法将Stream中的元素收集到一个集合中。它接受一个类型的参数,该参数定义了如何收集Stream中的元素。

 

2.2.5 min、max、count等聚合操作

、、等方法都是求Stream中元素的一些统计信息。

 

2.2.6 anyMatch、allMatch、noneMatch等匹配操作

、、等方法用于判断Stream中的元素是否满足特定条件。

 

2.2.7 findFirst、findAny等查找操作

、等方法用于返回Stream中的任意一个元素(如果存在)。

 

4.1 示例1:数据筛选与统计

假设有一个员工列表,每个员工有姓名、部门和薪水三个属性。现在需要对这个员工列表进行筛选和统计操作。具体要求如下

  • 筛选出薪水大于5000的员工
  • 按照部门对员工进行分组,并计算每个部门的平均薪水和员工数量
  • 对符合条件的员工按照薪水从高到低进行排序
  • 计算所有员工的平均薪水和最高薪水。

4.1.1 准备数据

首先,我们需要准备一组员工数据来模拟实际情况。假设我们有以下员工数据

 

其中,类的定义如下

 

4.1.2 筛选出符合条件的员工

使用方法对员工列表进行筛选,只保留薪水大于5000的员工

 

输出结果为

 

4.1.3 对员工列表进行分组和聚合

使用方法对员工列表进行分组,并使用方法进行值的转换和计算操作。

 

输出结果为

 

4.1.4 对符合条件的员工按照薪水从高到低排序

使用方法对员工列表进行排序操作,此处使用方法使其按照降序排列。

 

输出结果为

 

4.1.5 计算员工薪水的平均值和最高值

使用方法将员工列表中的薪水属性转换为整型,并使用方法和方法进行统计计算。

 

输出结果为

 

完整代码如下

 

输出结果为

 

4.2 示例2:对象属性映射与转换

当我们需要在不同的数据类型之间进行转换时,可以使用Java 8中提供的方法来实现。

假如我们有一个订单列表,每个订单包含订单号和一个包含多个商品的列表。我们需要将订单列表转换为商品列表,具体要求如下

  • 订单号和商品名称作为转换后的商品对象的属性
  • 转换后的商品数量为订单中所有商品的总和。

首先,我们需要定义和两个类来表示订单和商品

 

接下来,我们生成一组订单数据来进行转换操作

 

然后,我们使用方法将订单列表展开成商品流,再使用方法完成属性转换和计算操作

 

输出结果为

 

完整代码如下

 

4.3 示例3:多级分组与聚合

在复杂的数据集中,通常需要对数据进行多级分组和聚合操作。Java 8中提供了方法来实现多级分组,同时也可以使用嵌套的方法来实现多个分组条件的组合。

假设有一个学生列表,每个学生有姓名、性别、院系和年龄等属性。现在需要按照院系和性别对学生进行分组,并计算每个组的平均年龄和学生数量。

首先,我们需要准备一组学生数据来模拟实际情况。假设我们有以下学生数据

 

其中,类的定义如下

 

接下来,我们使用方法对学生列表进行多级分组和聚合操作,并使用方法进行值的转换和计算操作。由于多级分组的代码比较长,因此我们将其拆分成两个步骤进行操作。

首先,按照院系和性别进行分组,然后使用方法将年龄属性转换为整型,并使用方法对整型进行平均值计算

 

然后,我们使用方法遍历分组结果,并输出每个组的统计信息

 

输出结果为

 

完整代码如下

本文地址:https://sicmodule.kub2b.com/news/10440.html     企库往 https://sicmodule.kub2b.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新资讯
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号