测试又报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重复)相关推荐

  1. java.lang.IllegalStateException: Duplicate key 【java8 toMap(key重复如何解决)】

    使用stream的toMap()函数时,当key重复,系统会报错相同的key不能形成一个map,那么需要解决这个问题, 1.首先查看库中数据结构,相同人员编号存在多条关键词(arr_gic) List ...

  2. Exception in thread “main“ java.lang.IllegalStateException: Duplicate key xxx

    debug.. hah- 这个错误是使用stream流把list收集成map搞的,原因是map的key是唯一的,如果不唯一就抛出了这个异常. 下面是异常代码 import java.util.Arra ...

  3. 错误记录:java.lang.IllegalStateException:Duplicate key

    原因 Map中出现了和被转换的List中重复的key记录 try {//发起远程请求R skuHasStock = wareFeignService.getSkusHasStock(skuIds);/ ...

  4. 报错Caused by: java.lang.IllegalStateException: duplicate key: spring

    以上截图是我使用git重复提交5次的结果,第五次提交成功:这个故事告诉我们:当你连续犯好几次错的时候,你离成功就不远了~~~(其实也就是个小问题,yml里面格式的问题~) 1.当我们需要在同一个yml ...

  5. Stream流--java.lang.IllegalStateException: stream has already been operated upon or closed

    stream用了两次,forEach()已经进行了中止操作 终止操作符就是对数据进行收集或者消费的,数据到了终止操作这里就不会向下流动了,终止操作符只能使用一次.

  6. ElasticSearch出现java.lang.IllegalStateException: duplicate plugin: - Plugin information:

    为了使用IK-中文分词器,特地去下载了一个,结果重启动ES之后,进入Kibana可视化界面,出现了503服务不可用:一开始以为是Kibana还没注册进ES中,结果等待了一会还是如此. 1.使用dock ...

  7. ButterKnife与Fragment的爱恨情仇(java.lang.IllegalStateException: Bindings already cleared.)

    业务场景:常规app开发 页面切换框.底下4个选项卡.切换 上面4个不同页面的切换.业务逻辑不再赘述. 我在BaseFragment里面使用了注解框架ButterKnife注册,代码如下: onDes ...

  8. 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 ...

  9. 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 ...

最新文章

  1. MySQL优化篇:show profile进行SQL分析
  2. hdu1874 畅通project续 最短路 floyd或dijkstra或spfa
  3. 微博收藏(机器学习课程与论文)(三)
  4. 第41讲:Scrapy框架的介绍
  5. Python raw_input 函数 - Python零基础入门教程
  6. tableView里选中一行cell其它不选中的方法
  7. php cache-control,网页缓存控制 Cache-control 常见的取值有private、no-cache、max-age、must-revalidate 介绍...
  8. directUI的心得
  9. Php clearstatcache() 函数详解
  10. php导出数组到csv格式demo
  11. SQL Server 2008 索引超出了数组界限
  12. Visual Studio2022 离线安装包下载
  13. python怎么让矩阵内所有元素自己平方_python numpy库中矩阵用法指南
  14. 算法设计 L型组件填图问题
  15. 先手获胜逻辑题_最获胜的A / B测试结果是否令人误解?
  16. Android广告图片轮播控件banner
  17. vmware 桌面 服务器版,vmware云桌面软件服务器(vmware云桌面搭建教程)
  18. 陷阱技术探秘 ──动态汉化Windows技术的分析
  19. 忍者必须死3 通关 服务器维护,忍者必须死3进不去怎么办 进不去解决方法详解[多图]...
  20. ZOJ 3591 Nim (NIM博弈+统计

热门文章

  1. 中间件应用程序错误 修复方案_Qtum Neutron:新一代区块链虚拟机中间件会给Qtum带来哪些新功能?...
  2. 机器人售卖雪糕机_智能售货机售货机,冰淇淋厂
  3. gantt markdown
  4. mac os mysql 命令_如何在Mac OS上安装“mysql”命令?
  5. mysql怎么更新单一值_MySQL 如何更新某个字段的值为原来的值加1
  6. FPGA/ASIC初学者应该学习Verilog还是VHDL?
  7. FPGA之道(8)时钟处理单元
  8. 【 MATLAB 】如何产生一个均值和方差可控的正态分布矩阵(randn)?
  9. 用纯 CSS 创作一个小球反弹的动画
  10. Tungsten Replicator 多环境复制工具安装方法