商务服务
Java 8 Stream流常用操作
2024-12-26 20:43

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中提供了方法来实现多级分组,同时也可以使用嵌套的方法来实现多个分组条件的组合。

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

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

 

其中,类的定义如下

 

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

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

 

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

 

输出结果为

 

完整代码如下

    以上就是本篇文章【Java 8 Stream流常用操作】的全部内容了,欢迎阅览 ! 文章地址:https://sicmodule.kub2b.com/news/10440.html
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 https://sicmodule.kub2b.com/mobile/ , 查看更多   
最新文章
过年无忧 | 一键get这些春节话术!
一键Get这些春节话术~过年无忧新年快乐春节将至,年味渐浓在这温馨又热闹的节日氛围里我们既能品尝各式各样的美味佳肴沉浸于味
2025在新加坡生活的我们将迎来“至暗时刻”:房租飙涨、每个月入不敷出…
聚焦新加坡真是开年暴击!2025年刚开始,还没过新年呢,万事通就出了一身冷汗:今年又是一个物价涨涨涨的年份。在网上一搜“新加
太抽象!太抽象!2024年游戏行业简直太抽象!
年末,DataEye研究院今天整点活,轻松一波。——用数据、新闻盘点2024年国内游戏业有多抽象。回首2024年有产品研发8年烧了数亿,
TikTok会如何收场
TikTok的命运再次悬而不决。在美国下架12小时又恢复运营之后,1月20日,美国总统特朗普签署行政命令,要求TikTok「不卖就禁」法
今天上午10:00,成绩发布!
早安,东台!‍今天是2025年1月22日‍星期三(农历腊月廿三)大美东台,活力满满进取创新、奋斗拼搏最近有哪些新动态?和小东一
农村土地托管服务的理论基础
中国产品流通经纪人协会供销合作行业标准《农产品食品供应商信用评价规范》参编单位征集函中国农产品流通经纪人协会供销合作行业
头上三尺有神明,每个人头顶都有一颗星,当星光消失人也就消失!
每当夜晚降临后,我们抬头看天空,会看到满天的星星,自古以来,人们从没有停止过对星象的观测和研究。古人观测星象,一则是为了
运营师抖音代运营
运营师抖音代运营:掌握流行短视频潮流的神奇职业短视频平台已经成为人们娱乐、学习和社交的重要方式。在众多的短视频平台中,抖
微短剧,2024年“最大赢家”? | 年终盘点
2024,短剧行业大变样。作者 | 张语格编辑 | 趣解商业文娱组“互联网大厂争相入局。”“98%的短剧制作方都在亏钱。”“用户被免
同类第一!20%弹性的人工智能 ETF 科创(588760)今日上市,一键布局科创板优质AI龙头
  最新公告内容显示,广发上证科创板交易型开放式指数投资基金(基金代码:588760;扩位简称: ETF 科创)已于 2025 年 1 月 1