java duplicate key_Stream 操作 Duplicate key问题
背景:有一个用户订单查询首页(默认查询最近20条订单同时支持多条件查询),订单有多种,比如分销单,买家单,活动单等等,现在有一个需求,对于分销买家单需要添加供销商的一个信息。通过SupplierShopId作为参数 调用远端接口可以获取SupplierShopName。
开发思考:由原先的单次掉用修改为批量调用,店铺方面给的批量查询接口最大支持查询量为20条,对于多条件查询如果修改pageSize 需要多次调用,这边需要获取分销买家单进行数量计算,所以首先需要获取分销买家单数量。这边使用流操作先进行一次业务标判断过滤出符合条件的单子。获取到单子进行批量接口调用计算,将调用返回结果添加进入list集合里面。list的对象类型为定义的一个bo(拥有店铺id和店铺别名两个属性)最简单的方法是使用两个for循环,将bo中的店铺id和list中每个对象的店铺id 进行匹配,放入特定ordertail中。考虑时间效率使用map进行优化key 为店铺id ,value为店铺名字
遇到坑点:Stream 流操作后报错 Duplicate key
stream()
.collect(
Collectors.toMap(ShopMetaInfo::getKdtId, ShopMetaInfo::getShopName));
复制代码
原因:
多个分销单可能存在同一个供货商情况。
解决方案:
在java8中Collectors类中的tomap方法提供了我们将数据转换成Map的封装,往往在我们应用2个参数的(我们声明Key和Value很直接如下图)前提是key不能重复
其实java8已经给我们提供了解决的方式: 方法的第三个参数体现的
其实java8已经给我们提供了解决的方式: 方法的第三个参数体现的
java8处理思路:即 两个key相同时 只能有一个key存在,那对应的value如何处理? value就是这样处理(我们自己来写方法体,我只是简单的拿逗号拼接下)
java duplicate key_Stream 操作 Duplicate key问题相关推荐
- 数据库操作出现Duplicate entry ‘测试‘ for key ‘uk_name‘问题
Java编译出现Duplicate entry '测试' for key 'uk_name'问题 Java编译出现Duplicate entry '测试' for key 'uk_name'问题 Ja ...
- Java java.sql.SQLIntegrityConstraintViolationException:Duplicate entry ‘xx‘ for key ‘xx.PRIMARY‘问题解决
问题描述: Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '111' for key 'users ...
- mysql integrityerror_mysql插入数据报错IntegrityError: (1062, Duplicate entry 'xx' for key 'xxxxx')...
1.问题描述 MySQL插入数据的时候报错,提示如下: IntegrityError: (1062, "Duplicate entry 'xx' for key 'xxxxx'") ...
- MySql插入数据时错误Duplicate entry '131' for key 'PRIMARY'
今天在进行开发的过程中,遇到MySQL数据库插入数据时抛出异常: Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViol ...
- SQLIntegrityConstraintViolationException: Duplicate entry 'xxx' for key 'yyyzzz'异常解决
SQLIntegrityConstraintViolationException: Duplicate entry 'xxx' for key 'yyyzzz'异常解决 一. 异常现象 在做Java ...
- 解决mysql插入数字都变成2147483647的方法 Duplicate entry ‘2147483647‘ for key ‘PRIMARY‘ 详解mysql的数据类型
这里写目录标题 问题 分析问题 详解mysql数据类型 整型(xxxint) 浮点型(float和double) 定点数(decimal) 字符串(char,varchar,xxxtext) 二进制数 ...
- Hibernate保存数据自动生成主键出现奇怪异常Duplicate entry '0' for key 1
今天在写一块程序的时候,出现了一个异常信息,捣鼓了一上午,终于找到了异常原因--不仅仅是简单的主键冲突问题 测试数据库:MySQL 异常信息如下: org.hibernate.exception.Co ...
- MySQL ALTER TABLE报错Duplicate entry 'xxx' for key 'PRIMARY'解决方法
在MySQL中执行加字段等操作时可能会报Duplicate entry 'xxx' for key 'PRIMARY'的错,例如: mysql> alter table test add aa ...
- Duplicate entry 'xxx' for key 'xxx'
插入数据的时候 报错,Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplic ...
- paly 框架Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options.
今天使用play框架启动项目时候,直接Debug As 执行Demo会报错: ERROR: Cannot load this JVM TI agent twice, check your Java c ...
最新文章
- python【数据结构与算法】01背包问题(附例题)
- CSocket类的Receive超时的问题解决方案
- java将图片变成圆角_android图片处理之让图片变成圆形
- 使用ViewContainerRef探索Angular DOM操作技术
- Android笔记-Xposed的使用(Hook登录函数获取用户名密码)
- IOCP线程池的开发-(1)
- Android清空Fragment回退栈
- Iphone开发Interface Builder出现Assertion Failure错误
- ffmpeg安装之mac安装
- 整站优化与网页优化的区别
- jquery和prototype比较,以及冲突解决(转)
- (二十四)资本资产定价模型
- 八评腾讯:解密腾讯的中年危机
- 移动机器人控制软件的设计与实现
- 11种典型的时间序列回归预测方法大集合——附代码
- 【论文阅读】Automatic Updating of Land Cover Maps in Rapidly Urbanizing Region
- OSChina 周五乱弹 ——什么情况下两个人之间的距离能成为负数
- 2020十一届大学生服务外包大赛分析与经验分享
- 以太网阻塞的常见原因与解决方法
- 过年了,程序员同学如何给老板提加薪?