• 使用stream流合并多个List(根据实体类特定属性合并)


    开发情景

    现有多个List集合,其中都是一样的实体类,这里我想根据实体类的特定属性将它们合并在一起,形成一个最终的List集合。
    这里主要用到了Stream流flatMap方法与reduce方法。

    flatMap:可以将多个Stream流合并在一起,形成一个Stream流。
    reduce:可以将Stram流中的元素按照规则聚合在一起。

    示例

    现有广告费表,由于广告费类别不同,所以分开了不同的Excel工作簿Sheet类别导入。
    这里需要根据 ASIN+店铺别名+月份(Excel工作簿名称开头提供)将多个集合的数据合并在一起。

    数据源

    这里要读取与合并的数据是从Excel工作簿的多个Sheet表读取过来的。
    在这里插入图片描述

    注意:并没有真的使用逻辑删除,这里只不过是为了后期可能用,所以加上了。

    create table if not exists amazon_monitor_adfee_real
    (
        ID                bigint unsigned auto_increment comment 'ID'
            primary key,
        ASIN              varchar(50)                              not null comment 'ASIN',
        SELLER_CODE       varchar(50)                              not null comment '店铺',
        SELLER_OTHER_CODE varchar(50)                              not null comment '店铺别名',
        DATE_MONTH        varchar(50)                              not null comment '实际广告费时间(月份)yyyy-MM',
        ACTUAL_SP_AD_FEE  decimal(15, 4) default 0.0000            null comment '实际SP广告费',
        ACTUAL_SD_AD_FEE  decimal(15, 4) default 0.0000            null comment '实际SD广告',
        ACTUAL_SB_AD_FEE  decimal(15, 4) default 0.0000            null comment '实际SB广告',
        ACTUAL_DSP_AD_FEE decimal(15, 4) default 0.0000            null comment '实际DSP广告',
        CREATE_USER_ID    varchar(32)                              null comment '创建人',
        CREATE_TIME       datetime       default CURRENT_TIMESTAMP 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    C++对象拷贝
    C++ 学习系列 -- std::stack 与 std::queue
    Java获取AD域内所有用户
    WPS前骨干历时10年打造新型软件,Excel用户:我为此改用WPS
    Clickhouse 索引原理
    Java毕业设计-疫情防控系统
    Redis的过期删除策略
    实现外网手机或者电脑随时随地远程访问家里的电脑主机(linux为例)
    csv2mind csv文件根据指定字段输出脑图统计
    机器学习基础知识
  • 原文地址:https://blog.csdn.net/weixin_43670802/article/details/136712162