后台业务层对对象集合进行去重

本文介绍了一种在Oracle数据库中实现分组与去重的方法,通过Java代码示例展示了如何处理一个城市对应多个机场的数据场景,并利用MyBatis进行一对多的数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 【版权所有,文章允许转载,但须以链接方式注明源地址,否则追究法律责任】
  • 【创作不易,点个赞就是对我最大的支持】

前言

仅作为学习笔记,供大家参考
总结的不错的话,记得点赞收藏关注哦!

背景: 一个机场对应多个飞机
因oracle数据库不能进行分组,故用此方法进行去重
也可以用mybatis一对多解决

 List<City> newcityList=new ArrayList<>();
            List<City> cityList= cityMapper.selectCityListByJc(citys);
            List<Airport> airportList = new ArrayList<>();
for (int i =0;i<cityList.size();i++) {
               if(i!=0){
                  if(cityList.get(i).getId().equals(cityList.get(i-1).getId())){
                      Airport airport=new Airport();
                      airport.setSanzm(cityList.get(i).getSanzm());
                      airport.setSizm(cityList.get(i).getSizm());
                      airport.setJcmcCh(cityList.get(i).getJcmcCh());
                      airportList.add(airport);
                      if(i==cityList.size()-1){
                          cityList.get(i-1).setAirportList(airportList);
                          newcityList.add(cityList.get(i-1));
                      }
                  }else{
                      cityList.get(i-1).setAirportList(airportList);
                      newcityList.add(cityList.get(i-1));
                      airportList = new ArrayList<>();
                      Airport airport=new Airport();
                      airport.setSanzm(cityList.get(i).getSanzm());
                      airport.setSizm(cityList.get(i).getSizm());
                      airport.setJcmcCh(cityList.get(i).getJcmcCh());
                      airportList.add(airport);
                  }
               }else{
                   Airport airport=new Airport();
                   airport.setSanzm(cityList.get(i).getSanzm());
                   airport.setSizm(cityList.get(i).getSizm());
                   airport.setJcmcCh(cityList.get(i).getJcmcCh());
                   airportList.add(airport);
               }
             }
                if(newcityList.size()>0){
                 for (City item : newcityList) {
                     //根据城市的国家id查询国家信息
                     Country country = countryMapper.selectByPrimaryKey(item.getGjid());
                     item.setGjmc(country.getGjmcCh());
                     //根据城市id查询基地
                     FlightBaseModel flightBaseModel=new FlightBaseModel();
                     flightBaseModel.setCsid(item.getId());
                     List<FlightBase> flightBasesList=flightBaseMapper.selectList(tenantId,flightBaseModel);
                     if(flightBasesList!=null){
                         item.setFlightBasesList(flightBasesList);
                     }
                 }
                 //仅查看基地
               /*  Iterator<City> it = newcityList.iterator();
                 while (it.hasNext()){
                     if(Objects.nonNull(model.getJck()) && model.getJck()){
                         if (it.next().getFlightBasesList()==null){
                            it.remove();
                         }
                     }
                 }*/

             }

创作不易,点个赞就是对我最大的支持~


wxgzh:程序员温眉

CSDN:程序员温眉

每天进步一点点的程序员

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值