java8 Stream()流 list转map

javascript 复制代码
   List<User> list = new ArrayList<>();
   User user1 = new User();
   user1.setUserId("1");
   user1.setUserName("李四1");
   list.add(user1);
   User user2 = new User();
   user2.setUserId("2");
   user2.setUserName("李四2");
   list.add(user2);

Stream流中将List转换为Map,是使用Collectors.toMap方法来进行转换。

1.key和value都是对象中的某个属性值。

复制代码
Map<String, String> userMap = userList.stream().collect(Collectors.toMap(User::getUserId, User::getUserName));

输出map结果Json格式:{"1":"李四1","2":"李四2"}

2.key是对象中的某个属性值,value是对象本身(使用返回本身的lambda表达式)。

复制代码
Map<String, User> userMap = userList.stream().collect(Collectors.toMap(User::getUserId, User -> User));

输出map结果Json格式:{"1":{"1":"李四1"},"2":{"2":"李四2"}}

3.key是对象中的某个属性值,value是对象本身(使用Function.identity()的简洁写法)。

复制代码
Map<String, User> userMap = userList.stream().collect(Collectors.toMap(User::getUserId, Function.identity()));

输出map结果Json格式:{"1":{"1":"李四1"},"2":{"2":"李四2"}}

4.key是对象中的某个属性值,value是对象本身,当key冲突时选择第二个key值覆盖第一个key值。

复制代码
Map<String, User> userMap = userList.stream().collect(
	Collectors.toMap(User::getUserId, Function.identity(), (oldValue, newValue) -> newValue));

5.key是对象中的某个属性值,value是List对象

复制代码
Map<String, List<User>> dataUserMap = userList.stream().collect(
                Collectors.groupingBy(User::getUserId, Collectors.toList()));
相关推荐
Z***258016 小时前
Java爬虫框架
java·开发语言·爬虫
晓华-warm16 小时前
Warm-Flow 1.8.4 票签新增多种通过率策略!
java·中间件·流程图·jar·开源软件·工作流
m***119016 小时前
【SpringBoot】Spring Boot 项目的打包配置
java·spring boot·后端
李慕婉学姐16 小时前
Springboot剪纸数字博物馆系统6wd19a3a(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·spring boot·后端
Wuuconix16 小时前
阿三系统疑难杂症解决(输入法 + 浏览器闪屏)
windows·阿三
90后小陈老师17 小时前
用户管理系统 05 实现后端注册功能 | Java新手实战 | 最小架构 | 期末实训 | Java+SpringBoot+Vue3
java·开发语言·spring boot·后端·spring·maven·mybatis
Coding_Doggy17 小时前
链盾shieldchain | 项目管理、DID操作、DID密钥更新消息定时提醒
java·服务器·前端
j***630817 小时前
【springboot】Spring 官方抛弃了 Java 8!新idea如何创建java8项目
java·spring boot·spring
n***265617 小时前
Windows环境下安装Redis并设置Redis开机自启
数据库·windows·redis
JIngJaneIL18 小时前
汽车租赁|汽车管理|基于Java+vue的汽车租赁系统(源码+数据库+文档)
java·vue.js·spring boot·汽车·论文·毕设·汽车租赁