java list转成map对象_在Java 8中将List转换为Map对象方法
假设有一个员工对象:
public class Employee {
// member variables
private int empId;
private String empName;
private int empAge;
private String empDesignation;
将这个员工对象放入LIst集合,如何转为Map? 首先要明确Map的key是什么?
1. 比如式样员工对象的empId作为key,值是员工姓名:
// convert List to Map using Java 8 Streams
Map mapOfEmployees = employees.stream().collect(
Collectors.toMap(e -> e.getEmpId(),e -> e.getEmpName()));
2.Map的Key是empId,整个对象为Map的值:
// convert List to Map using Java 8 Streams
Map mapOfEmployees = employees.stream().collect(
Collectors.toMap( e -> e.getEmpId(), e -> e));
3. 如果List中有重复的empId,映射到Map时,Key时不能重复的,如何解决?
默认情况时会抛重复异常,为了克服IllegalStateException重复键异常,我们可以简单地添加一个
BinaryOperator方法到toMap()中,这也称为合并功能,比如如果重复,可以取第一个元素:
Map mapOfEmployees = employees.stream().collect(
Collectors.toMap(
e -> e.getEmpId(),
e -> e.getEmpName(),
(e1, e2) -> e1 )); // Merge Function
4. 将List转换为Map - 使用TreeMap对键进行自然排序,或者指定的Map实现呢?
Map mapOfEmployees = employees.stream().collect(
Collectors.toMap(
e -> e.getEmpId(),
e -> e.getEmpName(),
(e1, e2) -> e1 , // Merge Function
TreeMap::new)); // Map Supplier
如果你的TreeMap实现需要加入比较器,将上面代码中TreeMap::new替换成:
() -> new TreeMap(new MyComparator())
总结
以上所述是小编给大家介绍的在Java 8中将List转换为Map对象方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
java list转成map对象_在Java 8中将List转换为Map对象方法相关推荐
- java文件打包成jar文件_将java文件打包成jar包步骤
将mypackage包中的FrameDemo.java文件打包成可执行成jar包 步骤1:先将程序中所有类打包成一个包 编译mypackage包FrameDemo.java文件,将类文件存入D盘Jar ...
- java程序编译成exe文件_将java程序编译成独立运行的exe文件
将java程序编译成独立运行的exe文件 众所周知java的程序可以"一次编译,到处运行",这个特性不错,但是实现这个特性的前提是当前的平台 必须有相应的jvm,而且如果当前平台的 ...
- java 文字转换成语音 代码_【Java】将文本转化成语音
[Java]将文本转化成语音 发布时间:2018-05-07 21:45, 浏览次数:540 , 标签: Java 1.需要的jar包: 2.把dll文件放在%JAVA_HOME%\bin下(注意系统 ...
- java字符串转换成字节数组_将Java字符串转换为字节数组
我有一个要加密的字节数组,然后转换为字符串,以便可以传输. 当我收到字符串时,我必须将字符串转换回字节数组,以便可以对其进行解密. 我检查了接收到的字符串是否与发送的字符串(包括长度)匹配,但是当我使 ...
- java如果把字符串转成对象_为什么Java中的字符串对象是不可变的,有什么好处?...
专注于Java领域优质技术号,欢迎关注 原创: 阿杜的世界 阅读本文大概需要 4分钟. 所谓不可变对象,是指一个对象在创建后,它的内部状态不会被改变的对象.这意味着当我们将一个不可变对象的引用赋值给某 ...
- java robot 对象_用Java Robot对象实现服务器屏幕远程监视
用Java Robot对象实现服务器屏幕远程监视 作者:李鲁群 摘要: 有时候,在Java应用程序开发中,如:远程监控或远程教学,常常需要对计算机的屏幕进行截取,由于屏幕截取是比较接近操作系统的操作, ...
- java jvm对象_【Java】JVM
在 HotSpot 虚拟机中,一个对象在内存中存储的布局可以分为三块区域:对象头(Object Header).实例数据(Instance Data)和对齐填充(Padding). 当我们在 Java ...
- java 异常对象_在java中的异常处理中的异常对象是什么
展开全部 Exception类以及他的子类 的一个实例对象 比如32313133353236313431303231363533e58685e5aeb931333264633563 常见异常 1. j ...
- java有几大对象_一个 Java 对象到底有多大?
阅读本文大概需要 2.8 分钟. 出处:http://u6.gg/swLPg 编写 Java 代码的时候,大多数情况下,我们很少关注一个 Java 对象究竟有多大(占据多少内存),更多的是关注业务与逻 ...
- formdata 接受参数中带有class 对象_浅析JAVA中的反射机制及对Servlet的优化
今天来聊聊java中的反射机制,工作以后发现很多东西动不动就要使用反射或者动态代理,如果不能很好的理解反射,那么对于动态代理等一些重要的设计模式就会有种不够通透的感觉. 所谓的反射,就是在运行状态中, ...
最新文章
- java1.8新增超实用Map方法——Map.getOrDefault()和Map.value()方法详解
- pyqt5教程9:Widgets组件
- linux教程期末考试,Linux-期末考试试题8套含答案.doc
- java的守护进程与非守护进程
- Nginx做反向代理和负载均衡时“X-Forwarded-For”信息头的处理
- 辨异 —— 数学基本概念
- 阶段3 2.Spring_10.Spring中事务控制_3 作业-基于注解的AOP实现事务控制及问题分析_下...
- 背包问题-递归思想(C语言)
- 2019软科【世界一流计算机学科排名】公布!
- 如何在 Bios 中更改硬盘模式?
- Shiro记住我(RememberMe)
- xgboost, lightgbm, catboost, 谁才是预言之战的最终赢家?
- PHP socket 连接 Socket server
- visitor模式本质
- 再谈FEC与UDP可靠传输,音视频FEC 应用
- ubuntu安装与卸载搜狗输入法
- phone4s怎么越狱?iphone4s越狱教程图文解...
- SpringMVC几个核心类(控制器核心类,加载配置文件核心类,处理url影射核心类,处理视图资源核心类,方法动态调用核心类)
- 2020年有寓意的领证日期_2020领证吉日,这些特殊寓意的好日子不能错过
- 【Mac】加快Magic Mouse的移动速度
热门文章
- 在centos安装oracle客户端,centos下安装oracle客户端
- 【软技能】完全写作指南--演讲幻灯片
- 2021年计算机二级web题库,2021年全国计算机等级考试(二级Web程序设计)经典试题及答案...
- android 手势密码存储,Android 简易手势密码开源库详解
- 分享收集软件教程的微信小程序
- H3C无线控制器与Windows2008NPS结合实现无线终端的802.1X认证
- 使用Javassist 动态生成类
- 统一建模语言(UML)介绍和使用
- 自我保护第一课加密与防破解
- Java实现国密算法SM2,SM3,SM4,并且实现ECB和CBC模式