JDK8 stream toMap() java.lang.IllegalStateException: Duplicate key异常解决(key重复)
测试又报bug啦
接到测试小伙伴的问题,说是一个接口不返回数据了,好吧,虽然不是我写的接口任务落到头上也得解决,本地调试了一下,好家伙,直接抛了个异常出来,这又是哪位大哥喝醉了写的代码...
Exception in thread "main" java.lang.IllegalStateException: Duplicate key at java.util.stream.Collectors.lambda$throwingMerger$0(Collectors.java:133)at java.util.HashMap.merge(HashMap.java:1254)at java.util.stream.Collectors.lambda$toMap$58(Collectors.java:1320)at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
key重复异常解决
报错的那行代码如下:
Map<Long, Entity> entityMap= entityList.stream().collect(Collectors.toMap(Entity::getType, (entity) -> entity));
这行代码的目的就是将一个list对象转为map对象,以type为key,以entity对象为value。
但是与平常用的方法不同,而是直接使用java8的stream方式,报错也很清楚,就是key重复,也就是说在使用toMap方法时,有重复的type值导致了这个报错,最终解决方式如下:
Map<Long, Entity> entityMap= entityList.stream().collect(Collectors.toMap(Entity::getType, Function.identity(),(entity1,entity2) -> entity1));
使用toMap()的重载方法,如果已经存在则不再修改来避免重复key的问题。
顺便吐槽一下,这已经是多久前的代码了,怎么今天才报出这个错,也是醉了。
JDK8 stream toMap() java.lang.IllegalStateException: Duplicate key异常解决(key重复)相关推荐
- java.lang.IllegalStateException: Duplicate key 【java8 toMap(key重复如何解决)】
使用stream的toMap()函数时,当key重复,系统会报错相同的key不能形成一个map,那么需要解决这个问题, 1.首先查看库中数据结构,相同人员编号存在多条关键词(arr_gic) List ...
- Exception in thread “main“ java.lang.IllegalStateException: Duplicate key xxx
debug.. hah- 这个错误是使用stream流把list收集成map搞的,原因是map的key是唯一的,如果不唯一就抛出了这个异常. 下面是异常代码 import java.util.Arra ...
- 错误记录:java.lang.IllegalStateException:Duplicate key
原因 Map中出现了和被转换的List中重复的key记录 try {//发起远程请求R skuHasStock = wareFeignService.getSkusHasStock(skuIds);/ ...
- 报错Caused by: java.lang.IllegalStateException: duplicate key: spring
以上截图是我使用git重复提交5次的结果,第五次提交成功:这个故事告诉我们:当你连续犯好几次错的时候,你离成功就不远了~~~(其实也就是个小问题,yml里面格式的问题~) 1.当我们需要在同一个yml ...
- Stream流--java.lang.IllegalStateException: stream has already been operated upon or closed
stream用了两次,forEach()已经进行了中止操作 终止操作符就是对数据进行收集或者消费的,数据到了终止操作这里就不会向下流动了,终止操作符只能使用一次.
- ElasticSearch出现java.lang.IllegalStateException: duplicate plugin: - Plugin information:
为了使用IK-中文分词器,特地去下载了一个,结果重启动ES之后,进入Kibana可视化界面,出现了503服务不可用:一开始以为是Kibana还没注册进ES中,结果等待了一会还是如此. 1.使用dock ...
- ButterKnife与Fragment的爱恨情仇(java.lang.IllegalStateException: Bindings already cleared.)
业务场景:常规app开发 页面切换框.底下4个选项卡.切换 上面4个不同页面的切换.业务逻辑不再赘述. 我在BaseFragment里面使用了注解框架ButterKnife注册,代码如下: onDes ...
- java.lang.IllegalStateException: stream has already been operated upon or closed
1. 错误描述 static int [] intArr = new int[]{30,96,23,69,85,62,12,99,11}; IntStream intStream =Arrays.st ...
- viewpager2异常: java.lang.IllegalStateException: Fragment no longer exists for key f#1: unique id 8052
异常信息: java.lang.IllegalStateException: Fragment no longer exists for key f#1: unique id 805285bc-7a1 ...
最新文章
- MySQL优化篇:show profile进行SQL分析
- hdu1874 畅通project续 最短路 floyd或dijkstra或spfa
- 微博收藏(机器学习课程与论文)(三)
- 第41讲:Scrapy框架的介绍
- Python raw_input 函数 - Python零基础入门教程
- tableView里选中一行cell其它不选中的方法
- php cache-control,网页缓存控制 Cache-control 常见的取值有private、no-cache、max-age、must-revalidate 介绍...
- directUI的心得
- Php clearstatcache() 函数详解
- php导出数组到csv格式demo
- SQL Server 2008 索引超出了数组界限
- Visual Studio2022 离线安装包下载
- python怎么让矩阵内所有元素自己平方_python numpy库中矩阵用法指南
- 算法设计 L型组件填图问题
- 先手获胜逻辑题_最获胜的A / B测试结果是否令人误解?
- Android广告图片轮播控件banner
- vmware 桌面 服务器版,vmware云桌面软件服务器(vmware云桌面搭建教程)
- 陷阱技术探秘 ──动态汉化Windows技术的分析
- 忍者必须死3 通关 服务器维护,忍者必须死3进不去怎么办 进不去解决方法详解[多图]...
- ZOJ 3591 Nim (NIM博弈+统计
热门文章
- 中间件应用程序错误 修复方案_Qtum Neutron:新一代区块链虚拟机中间件会给Qtum带来哪些新功能?...
- 机器人售卖雪糕机_智能售货机售货机,冰淇淋厂
- gantt markdown
- mac os mysql 命令_如何在Mac OS上安装“mysql”命令?
- mysql怎么更新单一值_MySQL 如何更新某个字段的值为原来的值加1
- FPGA/ASIC初学者应该学习Verilog还是VHDL?
- FPGA之道(8)时钟处理单元
- 【 MATLAB 】如何产生一个均值和方差可控的正态分布矩阵(randn)?
- 用纯 CSS 创作一个小球反弹的动画
- Tungsten Replicator 多环境复制工具安装方法