java map映射_java8流操作之map映射

本文介绍了Java8中Stream API的map映射功能,通过示例展示了如何将Student类型的集合转换为Integer类型的年龄集合和String类型的性别集合。此外,还展示了如何将Student集合转换为Person类型的集合,强调了映射过程中对象转换的逻辑。通过这些例子,读者可以更好地理解和运用Java8的流操作进行集合转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天在《java中有没有类似sql的group by的功能呢》一文中写了关于java8中通过对流进行操作实现对集合的分组。

今天再来写写java8流操作的另一种应用,map映射。

2e3b371203877ca24de10cb55c50bd88.png

这个map映射就是将流中的对象转换成另一个对象。通过这样的过程就可以将一个集合通过流的map映射,最终转换成另一个集合。

具体咱们来演示一下。

还用昨天准备的类以及对象数据。

88b8f6918b8169e7bdd7d91871be161f.png

下面,我们先来将这个Student类型的List集合转换成保存所有年龄数据的Integer类型的集合。

来,上演示代码。

79223f400e0d09b6127a7837bfd3da2e.png

如上图所示,将list通过stream方法流化之后,在通过map方法可以将流中的对象映射成另外的对象。而map方法的参数就是映射的规则,如图中就是表示将流中的每个Student对象映射成这个对象的age属性。然后将映射后的Integer对象流收集成集合。

那如果是要将这个Student集合转换成存放性别数据的集合呢(这个性别的例子不是太合适,大家意会),想必大家已经可以根据上面的例子写出来了吧。

也贴出来一下吧。

1b7fc5c1312375543d2c3651f2d2e69b.png

上面的两个例子都是转换成原集合中一个属性组成的集合。

那如果是要转换成另外一个类型的集合呢,要怎么处理?

先来把所谓的另一个类型定义一下。

46264c78810340b13ef33fab6785b732.png

新增加了一个Person类,我们要做的是把Student类型的集合转换成Person类型的集合。

看看要怎么映射吧。

c78c56429fa864d2bdac3a4a4ab4c261.png

映射的关键方法map中的代码被“->”分成了两部分。前面的部分是表示流中的每一个对象,后面的部分表示要映射的结果。比如我们这里是要将流中的每个Student对象映射成Person对象(实际应用中映射的逻辑一般不会这么简单,一行就能搞定,需要结合业务逻辑编写映射的规则)。

这样最终通过collect收集起来的集合就是Person类型的集合了。

一起看下执行结果,结束今天的内容。

ba10e6ab2dc778f51313cd3e720e91b9.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值