开发情景
现有多个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