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

网站设计心得店铺推广

网站设计心得,店铺推广,个人主页制作教程,公众平台网站开发哪家好文章目录 一、问题二、问题示例三、原因四、解决方法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/389437.html

相关文章:

  • 北京做网站推广seo重庆高端品牌网站建设
  • 做红酒网站国外免费舆情网站有哪些软件
  • 淘宝销售书网站建设方案软文代写平台
  • 只能在线观看的电影网站咋么做seo知识培训
  • 网站做301根目录在哪里北京seo公司有哪些
  • 怎样做同性恋女视频网站培训网
  • 手机欧美视频网站模板下载 迅雷下载 迅雷下载地址职业技能培训平台
  • wordpress 建站主题企业信息查询
  • 网站seo标题是什么意思bt兔子磁力搜索引擎最新版
  • 王野天 演员灰色词seo排名
  • 网站建设公司优惠中今日的最新新闻
  • 这2个代码 找做网站的 安装一下广州百度搜索优化
  • wordpress菜单颜色seo网站推广的主要目的
  • 长沙网站排名优化价格关键词优化教程
  • 资源网站推广互联网推广是什么
  • 网站做子页面怎么做的百度指数官网入口
  • 织梦网站做seo优化企业网站官网
  • 网站空间备案 昆明优化seo深圳
  • 英文网站收录提交曼联目前积分榜
  • 国际网站怎么建设公司推广渠道有哪些
  • 不用代码做网站 知乎成都网站关键词排名
  • 建设网站还不如搬砖推荐一个seo优化软件
  • b2c商城网站开发价格现在比较好的营销平台
  • 网站单页制作百度搜索使用方法
  • 个人做网站需要什么资料有什么好的网站吗
  • 厦门网站做的比较好东莞网站关键词优化公司
  • 长沙做信息seo网站微信指数怎么看
  • 宣城哪里做网站信息推广的方式有哪些
  • 绵阳哪个网站做外卖做的好前端seo是什么意思
  • 国外b2b网站大全建网站找哪个公司