多个List 合并变成一个List+一个List 根据某个字段相等的另一个字段相加,并排序变成新的List

java 复制代码
List<CurveTimeAndValueDomain> curves = new ArrayList<>();
        for (int i = 0; i < columnNames.size(); i++){
            if (columnNames.get(i).equals(PlantConstant.TENDOWNFX) || columnNames.get(i).equals(PlantConstant.TENDOWNQP)) {
                //10千伏以下 数据 进行缓慢处理
                curveTimeAndValueDomains = gently(belongDay, columnNames.get(i));
            }else{
                //一个一个场站加
                curveTimeAndValueDomains = curveManagerCommonMapper.selectSinglePlantPowerDay2(belongDay, columnNames.get(i), belongDay.substring(0, 4));
            }
            if(!Objects.isNull(curveTimeAndValueDomains)){
                for (CurveTimeAndValueDomain curve:curveTimeAndValueDomains){
                    curves.add(curve);
                }
            }
        }

第一步:将多个List 相加

java 复制代码
for (CurveTimeAndValueDomain curve:curveTimeAndValueDomains){
                    curves.add(curve);
                }

第二步:将加起来的List 中:time 相同的value值相加

java 复制代码
//将曲线中 time 相同的 value 相加 并 去重
        List<CurveTimeAndValueDomain>  newCurve = merge(curves);

public static List<CurveTimeAndValueDomain> merge(List<CurveTimeAndValueDomain> curves){
        Map<String,CurveTimeAndValueDomain> map = new HashMap<>();
        curves.stream().forEach(curve ->{
            CurveTimeAndValueDomain last = map.get(curve.getTime());
            if (null != last){
                if(!Objects.isNull(last.getValue())){
                    curve.setValue(curve.getValue().add(last.getValue()));
                }
            }
            map.put(curve.getTime(),curve);
        });
        return map.values().stream().collect(Collectors.toList());
    }

第三步:将新的到的newCurve List 排序

java 复制代码
//按照time 进行排序
        newCurve.sort((curve1,curve2)->{
            Integer time1 = Integer.parseInt(curve1.getTime().replace(":",""));
            Integer time2 = Integer.parseInt(curve2.getTime().replace(":",""));
            return time1.compareTo(time2);
        });
相关推荐
Hcoco_me4 小时前
大模型面试题17:PCA算法详解及入门实操
算法
跨境卫士苏苏4 小时前
亚马逊AI广告革命:告别“猜心”,迎接“共创”时代
大数据·人工智能·算法·亚马逊·防关联
HerayChen4 小时前
HbuilderX 内存溢出报错
java·大数据·linux
程序员小白条4 小时前
0经验如何找实习?
java·开发语言·数据结构·数据库·链表
云雾J视界4 小时前
当算法试图解决一切:技术解决方案主义的诱惑与陷阱
算法·google·bert·transformer·attention·算法治理
Xの哲學4 小时前
Linux Miscdevice深度剖析:从原理到实战的完整指南
linux·服务器·算法·架构·边缘计算
小马爱打代码4 小时前
Spring AI:搭建自定义 MCP Server:获取 QQ 信息
java·人工智能·spring
郭涤生4 小时前
QT 架构笔记
java·数据库·系统架构
daidaidaiyu4 小时前
基于LangGraph开发复杂智能体学习一则
java·ai
夏乌_Wx5 小时前
练题100天——DAY23:存在重复元素Ⅰ Ⅱ+两数之和
数据结构·算法·leetcode