今天准备把list转map的时候,遇到一个异常,一直没想通怎么回事。
执行代码的时候是这个异常。
代码:

  new Thread(() -> {List<Cldict> list = cldictServiceImpl.list();Map<String, Cldict> collect = list.stream().collect(Collectors.toMap(x->x.getType()+x.getValue(), x -> x));Constant.cldictMap = collect;}).start();

单独执行stream的代码异常信息是:

Error during generated code invocation com.intellij.debugger.engine.evaluation.EvaluateException: Method threw 'java.lang.IllegalStateException' exception.

idea 日志里面打印的是:

Exception in thread "Thread-29" java.lang.IllegalStateException: Duplicate key Cldict(id=425, value=agreement_type, name=agreement_type, type=agreement_type, typename=agreement_type, sort=null, parent=null, remark=, delflag=否)

查阅资料才知道,如果map的key如果遇到重复的会把原来的覆盖。可是jdk1.8在使用steam转的时候,如果遇到key出现重复,就直接抛以上异常。
修改如下就可以了,代表出现重复直接覆盖。

Map<String, Cldict> collect = list.stream().collect(Collectors.toMap(x->x.getType()+x.getValue(), x -> x,(k1,k2)->k1));

记录JDK1.8 List 转 Map 的时候遇到的坑相关推荐

  1. 11.9 至 11.17 四道典型题记录: Counter 弹出 | map函数 | 子集求取 | 有序字符桶分装

    11.9 至 11.17 四道典型题记录: Counter 弹出 | map函数 | 子集求取 | 有序字符桶分装    昨天休息的时候一直在想应该学习哪种语言,我想这也是好多人发愁无法下手的原因之一 ...

  2. 维修记录,移动升级千兆宽带过程中的坑

    维修记录,移动升级千兆宽带过程中的坑 一.升级千兆的原因 为什么想着去升级千兆网线. 二.升级千兆业务的吐槽 槽点一:套餐捆绑销售 槽点二:路由捆绑销售 三.升级千兆的上门服务吐槽 槽点三:四线接头 ...

  3. 记录对接移动Mas平台发送短信踩的坑

    记录对接移动Mas平台发送短信踩的坑 1.首先吐槽一下,移动云Mas平台的接口文档写的真辣鸡 2.第一步,在已经注册完申请过云Mas平台账号之后,登录:移动云Mas平台. 3.登录之后找到 管理 - ...

  4. java jdk1.8 List转Map

    这里基本上是可以确认唯一一条记录,才这样做: 使用JDK1.8 Map<Long, User> maps = userList.stream().collect(Collectors.to ...

  5. 记录一次多线程与Map.keySet() 出现的“并发”问题

    闲话少说.对map.keySet().remove(key) 掉key后 这个map里的键值对也会被remove掉. 我说踏马的并发也不能在进入线程前和进入线程后jvm改变我变量属性,而且还很有规律 ...

  6. 记录:谷歌地图google map api实现基本测距功能

    测距 demo-代码 <!DOCTYPE html> <eteral:html><head><meta name="viewport" c ...

  7. Map的putAll方法踩坑实记(对象深拷贝浅拷贝)

    文章目录 问题描述 编写测试代码模拟问题场景 场景1:Map中不包含对象 场景2:Map中包含对象 什么是对象的浅拷贝深拷贝 如何实现深拷贝 问题描述 在一个产品管理系统中,产品信息需要封装一份同步业 ...

  8. 记录配置微信外链跳转小程序踩坑(H5跳转小程序)

    1.已有的小程序里面选择云开发,准备工作:下载官方demo 1.1新建云函数(参考:静态网站 H5 跳小程序 | 微信开放文档) 这个地方和官方操作一致,但是要特别注意如果设置了下图的话,云函数名称必 ...

  9. 记录Unity调用安卓及IOS拍照、相册的坑

    好久没有写文档啦,只怪自己懒.最近开发Unity的头像上传功能,在此记录过程中遇到的问题及解决方案. (一) 安卓端 1.安卓因为版本不同,在Android6.0以后,需要添加运行时访问权限,应在调用 ...

最新文章

  1. CORS-跨域资源共享 解决跨域问题
  2. RDKit | 通过评估合成难度(SA Score)筛选化合物
  3. 自学python推荐书籍2019-入门必看 | 大佬们推荐的Python书单汇总
  4. python对象编程例子-python编程进阶之类和对象用法实例分析
  5. signature=4bfbf257ebc393e8ee3071d531b76778,(Mannose).
  6. UliPad 初体验----python 开发利器
  7. JAVA:线程总结及多线程实现的两种方法
  8. Java ClassLoader setClassAssertionStatus()方法与示例
  9. svn 钩子 post-commit 出现255错误解决办法
  10. 《深入理解 Java 虚拟机》把这个知识点讲错了?
  11. Kalman Filter : 理解卡尔曼滤波的三重境界
  12. 不同种类的ICP算法
  13. android上传文件用哪个布局,每周总结20130821——android控件的尺寸、http文件上传...
  14. MongoDB进阶系列(12)——MongoDB 固定集合
  15. Hibernate关系映射(三) 多对一和一对多
  16. SQL Server Case表达式
  17. oracle9i12535错误,11gr2 alert日志中报TNS-12535 TNS-00505原因及解决方法
  18. Linux C 指针
  19. 【linux】循序渐进学运维-基础篇-linux运维级别
  20. 【Nios II】以SOPC开发流程完成流水灯以及串口输出实验

热门文章

  1. iostream与iostream.h乱弹琴
  2. maya如何查看资源大纲_maya大纲视图(Outliner),MAYA
  3. Qt 错误qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
  4. Zhong__安装配置ElasticSearch
  5. Reac生命周期钩子之getSnapshotBeforeUpdate
  6. 风丘科技为您提供电动汽车高压测试方案
  7. 两大数据库安全产品比拼:IBM Guardium VS Imperva SecureSpher
  8. 自制和烧录单片机 unicode 字库芯片 - 创建字库
  9. android开机字库加载过程,小米手机字库维修更换和EMMC字库编程烧写方法教程
  10. 男人与女人的暧昧法则