林谿 2021-06-11 10:35 采纳率: 52.9%
浏览 31
已结题

求问大神以下方法有没有办法优化,看着太伤眼了

    List<TbHoursDataDto> dataArrangement(List<TbHoursDataDto> dataList, List<TbHoursDataDto> qualityIndexList){
        for (TbHoursDataDto dto: dataList) {
            List<TbHoursDataDto> indexs=qualityIndexList.stream().filter(index -> index.getStationId().equals(dto.getStationId())).collect(Collectors.toList());

            //空气质量
            List<QualityIndexDto> so2List = new ArrayList<>();
            List<QualityIndexDto> no2List = new ArrayList<>();
            List<QualityIndexDto> pm10List = new ArrayList<>();
            List<QualityIndexDto> coList = new ArrayList<>();
            List<QualityIndexDto> o3List = new ArrayList<>();
            List<QualityIndexDto> pm25List = new ArrayList<>();

            //浓度
            List<QualityIndexDto> so2IaqiList = new ArrayList<>();
            List<QualityIndexDto> no2IaqiList = new ArrayList<>();
            List<QualityIndexDto> pm10IaqiList = new ArrayList<>();
            List<QualityIndexDto> coIaqiList = new ArrayList<>();
            List<QualityIndexDto> o3IaqiList = new ArrayList<>();
            List<QualityIndexDto> pm25IaqiList = new ArrayList<>();

            for (TbHoursDataDto i: indexs) {
                QualityIndexDto quality=null;

                //空气质量
                quality=new QualityIndexDto();
                quality.setStationId(dto.getStationId());
                quality.setTimePoint(i.getTimePoint());
                quality.setQualityIndex(i.getSo21h());
                so2List.add(quality);
                dto.setSo2List(so2List);

                quality=new QualityIndexDto();
                quality.setStationId(dto.getStationId());
                quality.setTimePoint(i.getTimePoint());
                quality.setQualityIndex(i.getNo21h());
                no2List.add(quality);
                dto.setNo2List(no2List);

                quality=new QualityIndexDto();
                quality.setStationId(dto.getStationId());
                quality.setTimePoint(i.getTimePoint());
                quality.setQualityIndex(i.getPm101h());
                pm10List.add(quality);
                dto.setPm10List(pm10List);

                quality=new QualityIndexDto();
                quality.setStationId(dto.getStationId());
                quality.setTimePoint(i.getTimePoint());
                quality.setQualityIndex(i.getCo1h());
                coList.add(quality);
                dto.setCoList(coList);

                quality=new QualityIndexDto();
                quality.setStationId(dto.getStationId());
                quality.setTimePoint(i.getTimePoint());
                quality.setQualityIndex(i.getO31h());
                o3List.add(quality);
                dto.setO3List(o3List);

                quality=new QualityIndexDto();
                quality.setStationId(dto.getStationId());
                quality.setTimePoint(i.getTimePoint());
                quality.setQualityIndex(i.getPm251h());
                pm25List.add(quality);
                dto.setPm25List(pm25List);

                //浓度
                quality=new QualityIndexDto();
                quality.setStationId(dto.getStationId());
                quality.setTimePoint(i.getTimePoint());
                quality.setQualityIndex(i.getSo21hIaqi());
                so2IaqiList.add(quality);
                dto.setSo2IaqiList(so2IaqiList);

                quality=new QualityIndexDto();
                quality.setStationId(dto.getStationId());
                quality.setTimePoint(i.getTimePoint());
                quality.setQualityIndex(i.getNo21hIaqi());
                no2IaqiList.add(quality);
                dto.setNo2IaqiList(no2IaqiList);

                quality=new QualityIndexDto();
                quality.setStationId(dto.getStationId());
                quality.setTimePoint(i.getTimePoint());
                quality.setQualityIndex(i.getPm101hIaqi());
                pm10IaqiList.add(quality);
                dto.setPm10IaqiList(pm10IaqiList);

                quality=new QualityIndexDto();
                quality.setStationId(dto.getStationId());
                quality.setTimePoint(i.getTimePoint());
                quality.setQualityIndex(i.getCo1hIaqi());
                coIaqiList.add(quality);
                dto.setCoIaqiList(coIaqiList);

                quality=new QualityIndexDto();
                quality.setStationId(dto.getStationId());
                quality.setTimePoint(i.getTimePoint());
                quality.setQualityIndex(i.getO31h());
                o3IaqiList.add(quality);
                dto.setO3IaqiList(o3IaqiList);

                quality=new QualityIndexDto();
                quality.setStationId(dto.getStationId());
                quality.setTimePoint(i.getTimePoint());
                quality.setQualityIndex(i.getPm251hIaqi());
                pm25IaqiList.add(quality);
                dto.setPm25List(pm25IaqiList);
            }
        }
        return dataList;
    }
  • 写回答

1条回答 默认 最新

  • 404警告 2021-06-11 10:49
    关注

    可以把第二个循环给讲解一下吗 ,为什么要每次set进去值再添加到list然后再添加到dto如果第二层循环不止一条数据 你这么做不就把第一次循环的已经添加的数据给覆盖了 还是说肯定只有一条数据

    评论

报告相同问题?

悬赏问题

  • ¥30 模拟电路 logisim
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价