背景:有一个用户订单查询首页(默认查询最近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问题相关推荐

  1. 数据库操作出现Duplicate entry ‘测试‘ for key ‘uk_name‘问题

    Java编译出现Duplicate entry '测试' for key 'uk_name'问题 Java编译出现Duplicate entry '测试' for key 'uk_name'问题 Ja ...

  2. Java java.sql.SQLIntegrityConstraintViolationException:Duplicate entry ‘xx‘ for key ‘xx.PRIMARY‘问题解决

    问题描述: Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '111' for key 'users ...

  3. mysql integrityerror_mysql插入数据报错IntegrityError: (1062, Duplicate entry 'xx' for key 'xxxxx')...

    1.问题描述 MySQL插入数据的时候报错,提示如下: IntegrityError: (1062, "Duplicate entry 'xx' for key 'xxxxx'") ...

  4. MySql插入数据时错误Duplicate entry '131' for key 'PRIMARY'

    今天在进行开发的过程中,遇到MySQL数据库插入数据时抛出异常: Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViol ...

  5. SQLIntegrityConstraintViolationException: Duplicate entry 'xxx' for key 'yyyzzz'异常解决

    SQLIntegrityConstraintViolationException: Duplicate entry 'xxx' for key 'yyyzzz'异常解决 一. 异常现象 在做Java ...

  6. 解决mysql插入数字都变成2147483647的方法 Duplicate entry ‘2147483647‘ for key ‘PRIMARY‘ 详解mysql的数据类型

    这里写目录标题 问题 分析问题 详解mysql数据类型 整型(xxxint) 浮点型(float和double) 定点数(decimal) 字符串(char,varchar,xxxtext) 二进制数 ...

  7. Hibernate保存数据自动生成主键出现奇怪异常Duplicate entry '0' for key 1

    今天在写一块程序的时候,出现了一个异常信息,捣鼓了一上午,终于找到了异常原因--不仅仅是简单的主键冲突问题 测试数据库:MySQL 异常信息如下: org.hibernate.exception.Co ...

  8. MySQL ALTER TABLE报错Duplicate entry 'xxx' for key 'PRIMARY'解决方法

    在MySQL中执行加字段等操作时可能会报Duplicate entry 'xxx' for key 'PRIMARY'的错,例如: mysql> alter table test add aa ...

  9. Duplicate entry 'xxx' for key 'xxx'

    插入数据的时候 报错,Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplic ...

  10. 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 ...

最新文章

  1. python【数据结构与算法】01背包问题(附例题)
  2. CSocket类的Receive超时的问题解决方案
  3. java将图片变成圆角_android图片处理之让图片变成圆形
  4. 使用ViewContainerRef探索Angular DOM操作技术
  5. Android笔记-Xposed的使用(Hook登录函数获取用户名密码)
  6. IOCP线程池的开发-(1)
  7. Android清空Fragment回退栈
  8. Iphone开发Interface Builder出现Assertion Failure错误
  9. ffmpeg安装之mac安装
  10. 整站优化与网页优化的区别
  11. jquery和prototype比较,以及冲突解决(转)
  12. (二十四)资本资产定价模型
  13. 八评腾讯:解密腾讯的中年危机
  14. 移动机器人控制软件的设计与实现
  15. 11种典型的时间序列回归预测方法大集合——附代码
  16. 【论文阅读】Automatic Updating of Land Cover Maps in Rapidly Urbanizing Region
  17. OSChina 周五乱弹 ——什么情况下两个人之间的距离能成为负数
  18. 2020十一届大学生服务外包大赛分析与经验分享
  19. 以太网阻塞的常见原因与解决方法
  20. 过年了,程序员同学如何给老板提加薪?

热门文章

  1. Java——》获取map中最小key,最小value
  2. 调用QQ与陌生人聊天
  3. 重庆对口高职计算机类专业答案2020,2020年重庆市高职分类考试教育类专业招生试题及答案...
  4. 第二章 确定性知识系统
  5. exlc表格怎么换行_在Excel中如何换行?Excel表格换行快捷键是什么?
  6. Squid代理服务器应用及配置(图文详解)
  7. 古今中外著名14大悖论
  8. 焦点关注|创造中国奇迹:北京大兴国际机场的助力者
  9. 2017新型智慧城市建设的五“新”级策略
  10. 各大洲时区以及Linux环境下修改时区