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