最近项目中在使用JDK8中toMap方法遇到因key相同而导致toMap报错的情况,解决方案如下:

    Collectors.toMap(keyMapper, valueMapper, mergeFunction)

第一个参数是要生成map的key,第二个参数是新生成map的value,第三个参数是当key发生重复时处理的方法,重复时需要返回一个数值放到当前value处。

示例1:重复时采用后面的value 覆盖前面的value

list.stream().collect(Collectors.toMap(Student::getClassName, Student::getStudentName, (value1, value2 )->{ return value2; }));

示例2:重复时将之前的value 和现在的value拼接或相加起来

list.stream().collect(Collectors.toMap(Student::getClassName, Student::getStudentName, (key1 , key2)-> key1 + "," + key2 ));

示例3:拼接key

list.stream().collect(Collectors.toMap(k -> k.getContentCode() + "_" + k.getContentVersion(), v -> v, (value1, value2 ) -> value2));

到此,问题解决。

JDK8 toMap之key重复报Duplicate key xxxx异常解决相关推荐

  1. 如何解决Collectors#toMap报Duplicate key xxx错误问题

    文章目录 前言 问题复现 解决方案 前言 最近工作中发现同事写代码遗留了一个bug,在使用Collectors.toMap的时候会出现Exception in thread "main&qu ...

  2. php on duplicate key,php – ON DUPLICATE KEY UPDATE值;两次插入相同的值

    我试图插入一些值,如果有一个DUPLICATE KEY UPDATE表人.我正在获取值的插入,但它重复值而不是进行更新.输入字段是动态的,可以添加或删除值.但我试图没有重复的价值观.如何插入新值,如果 ...

  3. 关于React Native Android打包报Duplicate resources错的解决方法

    最近,在给React Native 项目打包的时候遇到如下异常提示: Error: Duplicate resources 此错误的意思是某些资源文件重复,首先尝试了手动删除重复的资源文件,然后再打包 ...

  4. Python使用fitz库报错、运行异常解决办法

    文章目录 一.项目场景 二.解决办法 三.总结 一.项目场景 最近使用到了 fitz 库来操作 PDF 文件,如下是我的工作环境: 系统:Ubuntu21.10 Python版本:Python3.9. ...

  5. postgres 保存报错duplicate key value violates unique constraint...解决方案_亲测有效

    postgres 保存报错duplicate key value violates unique constraint 解决方案 原因分析: 表名: A 表A的主键id 是由序列 x$seq 生成的 ...

  6. jsqlparser:修改语法定义(JSqlParserCC.jjt)实现UPSERT支持Phoenix语法ON DUPLICATE KEY IGNORE

    最近在用jsqlparser4.5解析SQL时遇到了一个问题, 如下是apache phoenix的UPSERT语句 UPSERT INTO TEST (ID, COUNTER) VALUES (12 ...

  7. JDK8 stream toMap() java.lang.IllegalStateException: Duplicate key异常解决(key重复)

    测试又报bug啦 接到测试小伙伴的问题,说是一个接口不返回数据了,好吧,虽然不是我写的接口任务落到头上也得解决,本地调试了一下,好家伙,直接抛了个异常出来,这又是哪位大哥喝醉了写的代码... Exce ...

  8. JDK8中Collectors.toMap方法报Duplicate key xxx错误信息

    两种 list转map方式 方式一:这种方式 重复key的话会报错 Duplicate key xxx Map deviceDtoMap = JsonUtils.toList(deviceDtoLis ...

  9. JDK8中Collectors.toMap方法报Duplicate key xxx错误信息

    今天在使用JDK8中的Collectors.toMap()方法报错,错误信息是Duplicate key xxx,很明显是因为key重复造成的,此时通过使用Collectors.toMap()的重载方 ...

  10. Collections.toMap 报错 空指针 key重复

    Collections.toMap作用 将list按照规则转成map. books.stream().collect(Collectors.toMap(Book::getIsbn, Book::get ...

最新文章

  1. IDC与村村乐合作服务中国农村市场
  2. UA MATH636 信息论2 数据压缩
  3. shujufenxi : baichi xiangzhuanqian
  4. python 入门第二课2 file的文件操作
  5. 解析Infopath生成的XSN结构
  6. 【Linux】七种运行级别
  7. 【渝粤教育】广东开放大学 演绎娱乐经验管理 形成性考核 (49)
  8. Linux安装MySQL安装包下载
  9. centos7安装中文字体
  10. php 单笔转账到支付宝账户,php之支付宝转账或发红包到指定账户(提现功能)
  11. 独木舟贪心算法c语言,算法:(贪心算法)-独木舟问题
  12. vue实现文字翻转效果
  13. svn is already locked如何解决
  14. c#加密:二、散列法 MD5、SHA256、SHA512
  15. PAT10321032 挖掘机技术哪家强 (20 分)
  16. 如何让DIV水平和垂直居中
  17. 【PIC32MZ】开发环境的搭建
  18. 尚学堂Java300答案解析 第三章
  19. 一元夺宝的2种押注策略分析
  20. 基于JSP的保险业务管理系统【数据库设计、源码、开题报告】

热门文章

  1. java-FFmpeg(一) 实现视频的转码和截图功能
  2. 双浮点运算计算机在线,双浮点运算计算器
  3. C语言实现【关机程序】
  4. 计算机术语宏是什么意思,宏(计算机术语)
  5. MaxDOS V7 PXE网刻教程
  6. 手机怎么打开html.chm,chm格式文件怎么打开,华为手机chm阅读器哪个好
  7. 2020最强图像匹配综述论文-Part1
  8. 解决steam无法启动gta5报错msvcp140.dll丢失
  9. html5跳转页面接收参数,HTML页面跳转及参数传递问题
  10. termux配置python安装kali_利用termux安装kali