业务场景:定时任务同步中间表数据到业务表,如果中间表中存在相同维度的多条数据(未创建唯一索引),取最新一条数据,并对查询的中间表数据进行更新。

方式1

 // 根据结果表唯一索引分组,取中间表重复最新一条Map<String, List<MidDeliveryAreaConfigFresh>> mapGroup = list.stream().collect(Collectors.groupingBy(v ->v.getDcCode() + v.getBigCategoryCode() + v.getSmallCategoryCode() + v.getProductCode() + v.getStockLoc()));List<MidDeliveryAreaConfigFresh> resultList = mapGroup.values().stream().map(listv -> listv.get(listv.size() - 1)).collect(Collectors.toList());

方式2

List<MidDeliveryAreaConfigFresh> resultList = list.stream().collect(Collectors.groupingBy(v -> new StringBuilder().append(v.getDcCode()).append(v.getBigCategoryCode()).append(v.getSmallCategoryCode()).append(v.getProductCode()).append(v.getStockLoc()))).values().stream().map(listv -> listv.get(listv.size() - 1));
方式2SonarLint检测工具不通过,方式1对方式2进行了拆分优化。

方式3,更详细拆分

  Map<String, List<MidDeliveryAreaFresh>> map = list.stream().collect(Collectors.groupingBy(MidDeliveryAreaFresh::getDeliveryAreaCode));List<List<MidDeliveryAreaFresh>> groupList = map.values().stream().collect(Collectors.toList());List<MidDeliveryAreaFresh> resultList = groupList.stream().map(listv -> listv.get(listv.size() - 1)).collect(Collectors.toList());

stream实现list根据对象中多个属性分组,并取分组后最新数据相关推荐

  1. java 数组匹配_Java8List对象中的List匹配元素 返回当前匹配后的数据(含外数组)

    需求:获取lols中的player某个元素 import com.alibaba.fastjson.JSONObject; import lombok.*; import org.springfram ...

  2. Stream通过List里对象中某个属性最小来取该最小对象

    Stream通过List里对象中某个属性最小来取该最小对象 代码实现(Entity为实体) 代码实现(Entity为实体) List.stream().min(Comparator.comparing ...

  3. java集合按大小排序_List集合对象中按照不同属性大小排序的实例

    实例如下: package com.huad.luck; import java.util.arraylist; import java.util.collections; import java.u ...

  4. js 对象中添加新属性

    js 对象中添加新属性 对象数组添加新属性 同名属性会被覆盖,相同属性会去重

  5. js删除数组对象中的某个属性的方法

    模拟数组对象数据 let newArr = [{title:'小明', id:18},{title:'小红', id:16}] 方式一:(for循环)删除数组对象中的某个属性,如删除id属性 for ...

  6. 【关于js数组对象一道题】将数组对象中的英文属性名替换为中文属性名

    将数组对象中的英文属性名替换为中文属性名 const arr = [{name: '张三', age: 18, address: '湖北'}, {name: '李四', age: 18, addres ...

  7. DOM对象中的常用属性(innerHTML属性,innerText属性,className属性,style属性)

    DOM对象中的常用属性 innerHTML属性 innerText属性 className属性 style属性 innerHTML属性 innerHTML属性:用于设置或获取HTML 元素中的内容. ...

  8. mysql查询每个id的前10条数据_解决 MySQL 比如我要拉取一个消息表中用户id为1的前10条最新数据...

    我们都知道,各种主流的社交应用或者阅读应用,基本都有列表类视图,并且都有滑到底部加载更多这一功能, 对应后端就是分页拉取数据. 好处不言而喻,一般来说,这些数据项都是按时间倒序排列的,用户只关心最新的 ...

  9. TS对象中的实例属性和静态属性

    // 使用class关键字来定义一个类 /* * 对象中主要包含了两个部分: * 属性 * 方法 * */ class Person{/** 直接定义的属性是实例属性,需要通过对象的实例去访问:* c ...

最新文章

  1. Ubuntu16.04运行.run文件
  2. Dubbo开源现状与未来规划
  3. CUDA高性能计算经典问题:前缀和
  4. MySQL复制的奇怪问题
  5. 在 IntelliJ IDEA 中定制开发 ZooKeeper
  6. Extjs, each中实现break、continue
  7. RHCE 学习笔记(32) - DNS
  8. boot spring 启动 文本_SpringBoot启动时如何加载配置文件
  9. 【自然语言处理系列】预训练模型原理和实践综述 | 附汇报PPT原稿和18篇论文
  10. [MySQL]SQL优化工具SQLAdvisor
  11. 单位换算:s(秒),ms(毫秒),μs(微秒),ns(纳秒),ps(皮秒)
  12. Android MPush开源消息推送系统:简洁、安全、支持集群
  13. 百度地图API详解之公交路线规划
  14. matplotlib.pyplot.hist()绘制直方图
  15. UI设计师都用什么工具?
  16. [每天一个知识点]12-Maven怎么读
  17. 帮我起个名字,带淇,两个字的
  18. 赞!华为19级大牛分享503NoSQL进阶笔记,横扫一切
  19. AutoCAD 描图方法小结
  20. 计算机应用基础心得体会300字,网络远程学习的心得体会

热门文章

  1. python支付宝自动支付_python-支付宝支付示例
  2. opboot怎么刷入固件_没有固件可刷的路由器,那就开个 SSH 折腾一下
  3. Algorithm:字典序最小问题
  4. Scrapy分布式原理及Scrapy-Redis源码解析(待完善)
  5. python 切片_知乎问答之 Python 切片整理
  6. MATLAB rolcus函数,自动控制原理实验报告 .doc
  7. python如何判断QQ是否在线?
  8. Hbase具体操作(图文并茂且超超全~~~)
  9. Android 模拟器连接异常:Unable to connect to ADB server
  10. Spring cloud Gateway(二) 一个Http请求的流程解析