当前位置 : 主页 > 编程语言 > c++ >

记录筛选数组中以某个属性分组

来源:互联网 收集:自由互联 发布时间:2021-07-03
数组 //需要筛选的数组 List homeVehicles = new ArrayList(); HomeVehicle homeVehicle = null; HomeDevice homeDevice; List infoList = vehicleInfoMapper.getHomeVehicel(group1.getId(),null); Long vehiId = null; Date signTime = null; Long
数组
//需要筛选的数组
                    List
 
   homeVehicles = new ArrayList<>();
                    
					HomeVehicle homeVehicle = null;
                    
					HomeDevice homeDevice;
                    
					List
  
    infoList = vehicleInfoMapper.getHomeVehicel(group1.getId(),null); Long vehiId = null; Date signTime = null; Long deviId = null; for (HomeVehicle vehicle : infoList) { //以ID为分组 if(!Objects.equals(vehiId,vehicle.getVehiId())){ if(Objects.nonNull(homeVehicle)){ homeVehicles.add(homeVehicle); } vehiId = vehicle.getVehiId(); homeVehicle = vehicle; homeVehicle.setDevices(new ArrayList<>()); signTime = null; deviId = null; } //对时间排序 if(signTime == null){ signTime = vehicle.getSignalTime(); deviId = vehicle.getDeviId(); }else { if(vehicle.getSignalTime() != null && signTime.getTime() < vehicle.getSignalTime().getTime()){ signTime = vehicle.getSignalTime(); deviId = vehicle.getDeviId(); } } homeVehicle.setSignalTime(signTime); homeVehicle.setDeviId(deviId); if(Objects.isNull(vehicle.getDeviId())){ continue; } homeDevice = new HomeDevice(); homeDevice.setDeviName(vehicle.getDeviName()); homeDevice.setDeviId(vehicle.getDeviId()); homeDevice.setDeviOnline(vehicle.getDeviOnline()); homeDevice.setOnofTime(vehicle.getOnofTime()); homeVehicle.getDevices().add(homeDevice); } if(Objects.nonNull(homeVehicle)){ homeVehicles.add(homeVehicle); } groupVehicle.setVehicleInfos(homeVehicles); groupVehicleList.add(groupVehicle); }
  
 
网友评论