当前位置: 首页 > 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/72639.html

相关文章:

  • 武汉做网站优化的公司外贸网站推广平台有哪些
  • 六盘水南宁网站建设长沙网络科技有限公司
  • ui设计方向网站建设目标网站营销策划公司
  • 网站建设仟首先金手指14百度收录网站要多久
  • 深圳网站建设fantodo如何发布一个网站
  • 怎么删除织梦做的网站广告联盟有哪些平台
  • 做网站推广运营前景西安seo哪家好
  • 网站可以跳转备案吗网站关键词优化推广哪家快
  • 网站广告费怎么做分录百度seo推广首选帝搜软件
  • 代刷网网站怎么做长沙网站包年优化
  • 合肥营销型网站建设公司西安网站开发制作公司
  • 网站搜索框如何做hao123影视
  • 网站建设税点发票百度入驻绍兴
  • 网站建和优网站建设免费的行情网站app软件
  • 四川城乡建设官方网站广告推广计划
  • 网站域名做跳转要收费吗适合seo的网站
  • 温州科技网站建设网站关键词优化怎么做的
  • div+css网站模版下载推广普通话的意义50字
  • 简述网站建设的标准关键词查询
  • 个人网站制作dw百度关键词怎么刷上去
  • 河南网站建站系统哪家好枣庄网站seo
  • 中小型网站建设价格手机网站怎么优化
  • 网站服务器租赁你的知识宝库免费二级域名查询网站
  • 黄金做空网站百度竞价广告的位置
  • 济南网站建设和维护seo关键词优化方法
  • 用discuz做商城网站如何制作微信小程序店铺
  • 莆田有交做外贸网站的没sem推广什么意思
  • linux 什么做网站好网站推广是什么意思
  • 用手机建网站外链发布
  • 张家港网站建设培训班企业网络营销青岛