当前位置: 首页 > wzjs >正文

宁波模板建站定制职业培训学校加盟

宁波模板建站定制,职业培训学校加盟,wordpress 代码框插件,手机网站建设的趋势文章目录 一、问题二、问题示例三、原因四、解决方法4.1、方案一 一、问题 发现Collectors.toMap的一个坑,若key值重复的时候会抛异常。如: IllegalStateException: Duplicate key 男 二、问题示例 报错示例如下: import lombok.AllArgsC…

文章目录

  • 一、问题
  • 二、问题示例
  • 三、原因
  • 四、解决方法
    • 4.1、方案一

一、问题

发现Collectors.toMap的一个坑,若key值重复的时候会抛异常。如: IllegalStateException: Duplicate key 男

二、问题示例

报错示例如下:

import lombok.AllArgsConstructor;
import lombok.Data;import java.util.*;
import java.util.stream.Collectors;public class Test {public static void main(String[] args){List<User> list = new ArrayList<>();User u1 = new User("张三","男");User u2 = new User("张三","女");list.add(u1);list.add(u2);//key:姓名  value:性别Map<String,String> userMap = list.stream().collect(Collectors.toMap(User::getName, User::getSex));System.out.println(userMap);}
}@Data
@AllArgsConstructor
class User{//姓名private String name;//性别private String sex;
}

报错信息:

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)at com.springboot.store.Test.main(Test.java:17)

三、原因

根据上面报错信息找到报错代码,
java.util.stream.Collectors.lambda$throwingMerger$0(Collectors.java:133)
在这里插入图片描述

四、解决方法

4.1、方案一

为了解决key值重复情况,你可以通过提供一个合并函数来解决键冲突的问题。下面是一个示例,展示了如何使用 toMap 的四参数版本来避免抛出异常,并选择保留最后一个值:

import lombok.AllArgsConstructor;
import lombok.Data;import java.util.*;
import java.util.stream.Collectors;public class Test {public static void main(String[] args){List<User> list = new ArrayList<>();User u1 = new User("张三","男");User u2 = new User("张三","女");list.add(u1);list.add(u2);//key:姓名  value:性别Map<String,String> userMap = list.stream().collect(Collectors.toMap(User::getName, User::getSex,(oldValue,newValue)->newValue));System.out.println(userMap);}
}@Data
@AllArgsConstructor
class User{//姓名private String name;//性别private String sex;
}

输出结果:

{张三=}

可以看到最后的效果是使用新的值替换旧的值。所以输出的是

http://www.dtcms.com/wzjs/129024.html

相关文章:

  • 做网站怎么移动图片湘潭seo优化
  • 做公章网站简述网站建设流程
  • 徐州沛县网站建设互联网推广平台
  • 个人建网站的费用网站seo报价
  • 网站美化软件app拉新推广平台
  • 网站开发完以后交付源代码青岛seo优化公司
  • 新网站制作怎么样武汉seo招聘
  • 做简单网站代码百度小程序怎么进入
  • wordpress怎么修改后台菜单宁波seo网站推广软件
  • 东莞网站制作十年乐云seo杭州网站设计制作
  • 昆明做网站建设怎么样买卖平台
  • 秦皇岛市融资综合信用服务平台seo是啥软件
  • 网站布局图福州百度推广优化排名
  • 教育网站建设市场分析计划书网站和网页的区别
  • 深圳网站建设网站设计软文推广百度浏览器官网入口
  • php网站功能互联网舆情监测系统
  • vs2010网站建设有名的seo外包公司
  • 做医疗网站要几个人深圳网络推广seo软件
  • 做电影网站怎样赚钱吗疫情防控最新政策
  • 淘宝内部优惠券网站建设青岛网站建设公司排名
  • 网站空间免费试用自媒体平台注册官网下载
  • 湖南美食网站建设策划书超链接友情外链查询
  • 全国工商核名查询系统官网win7最好的优化软件
  • 查互做蛋白的网站东莞seo网站排名优化
  • wordpress屏蔽自带密码重置广州网站优化推广方案
  • 订票网站开发公司it培训机构有哪些
  • 优秀网站设计书籍开发定制软件公司
  • 宁波网站推广宣传百度网络营销的概念
  • 余杭区政府门户网站建设工程互联网广告营销是什么
  • 网站建设公司怎么发展seo公司是什么意思