前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >toMap(二)

toMap(二)

作者头像
阿超
发布2022-08-16 19:00:41
4140
发布2022-08-16 19:00:41
举报
文章被收录于专栏:快乐阿超

一切的美德都包含在自我信赖里。——爱默森

今天继续聊聊StreamJdk8已经为我们封装好的这个Collectors.toMap

前两天写的List to Map工具类是为了解决key重复问题

实际上我们可以用Collectors.toMap的重载直接解决,例如

代码语言:javascript
复制
List<User> userList = new ArrayList<>(10);
        Map<Integer, User> userMap = userList.stream().collect(Collectors.toMap(User::getId, Function.identity(), (user1, user2) -> user2));

我们在toMap的第三个参数给定,这里我们直接返回user2,意思是如果遇到重复的key[例如这里的userId重复],我们使用第二个user,也就是后者去覆盖前者

除了这点,我们还可以看到一个包含四个参数的重载

这里第四个参数是用于返回指定的map使用的

例如我们需要返回一个LinkedHashMap

就可以这样写

代码语言:javascript
复制
userMap = userList.stream().collect(Collectors.toMap(User::getId, Function.identity(), (user1, user2) -> user2, LinkedHashMap::new));

第四个参数接收的是一个Supplierlambda写法就是()->这样啦!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-02-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档