1. 使用Lambda表达式简化循环操作:

List admins = adminService.queryAdminByTotalAdminId(admin.getAdminId()); List deviceEntityDtos = new ArrayList<>(); admins.forEach(admin2 -> { List deviceEntities = queryAllBaseDevicesEntitiesByAdminId(admin2.getAdminId()); if (!deviceEntities.isEmpty()){ deviceEntities.forEach(deviceEntity -> { DeviceEntityDto deviceEntityDto = new DeviceEntityDto(); BeanUtils.copyProperties(deviceEntity,deviceEntityDto);

        int count = queryMobileDevicesByBindingIDByCount(deviceEntity.getDeviceId(),deviceEntity.getAdminId());
        deviceEntityDto.setMobileCount(count);

        deviceEntityDto.setAdminRealName(admin2.getRealName());
        deviceEntityDto.setAdminPhone(admin2.getAdminPhone());

        deviceEntityDtos.add(deviceEntityDto);
    });
}

});

  1. 使用Stream API对数据进行过滤和转换:

List admins = adminService.queryAdminByTotalAdminId(admin.getAdminId()); List deviceEntityDtos = admins.stream() .flatMap(admin2 -> queryAllBaseDevicesEntitiesByAdminId(admin2.getAdminId()).stream() .filter(deviceEntity -> queryMobileDevicesByBindingIDByCount(deviceEntity.getDeviceId(), deviceEntity.getAdminId()) > 0) .map(deviceEntity -> { DeviceEntityDto deviceEntityDto = new DeviceEntityDto(); BeanUtils.copyProperties(deviceEntity, deviceEntityDto); deviceEntityDto.setMobileCount(queryMobileDevicesByBindingIDByCount(deviceEntity.getDeviceId(), deviceEntity.getAdminId())); deviceEntityDto.setAdminRealName(admin2.getRealName()); deviceEntityDto.setAdminPhone(admin2.getAdminPhone()); return deviceEntityDto; })) .collect(Collectors.toList())

代码还可以怎么优化给出具体代码 ListAdmin admins = adminServicequeryAdminByTotalAdminIdadmingetAdminId; ListDeviceEntityDto deviceEntityDtos = new ArrayList; for Admin admin2 admins

原文地址: http://www.cveoy.top/t/topic/fV34 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录