优化代码如下:

List<DrugBandQuantityConsumptionStatisticsVO> statisticsVOList = dispenseDrugStatisticService.queryDispenseDrugForBandQuantityByContractDate(branchHosp, endDate);
Map<String, DrugBandQuantityConsumptionStatisticsVO> statisticsVOListMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(statisticsVOList)) {
    for (DrugBandQuantityConsumptionStatisticsVO vo : statisticsVOList) {
        vo.setConsumption(vo.getConsumption() == null ? 0 : vo.getConsumption());
        DrugBandQuantityConsumptionStatisticsVO statisticsVO = statisticsVOListMap.getOrDefault(vo.getDrugTradeCode(), new DrugBandQuantityConsumptionStatisticsVO());
        statisticsVO.setConsumption(vo.getConsumption() + statisticsVO.getConsumption());
        statisticsVOListMap.put(vo.getDrugTradeCode(), statisticsVO);
    }
}

在原始代码中,我们使用了 if-else 语句来判断 statisticsVOListMap 中是否已存在对应 DrugTradeCodeDrugBandQuantityConsumptionStatisticsVO 对象。如果不存在,则创建一个新的对象并放入 statisticsVOListMap 中。

通过使用 getOrDefault() 方法,我们可以直接获取 statisticsVOListMap 中对应 DrugTradeCodeDrugBandQuantityConsumptionStatisticsVO 对象。如果不存在,则返回一个新的 DrugBandQuantityConsumptionStatisticsVO 对象。这样就避免了 if-else 语句的判断,代码更加简洁高效。

此外,在原始代码中,我们还需要对 vo.getConsumption() 进行空值判断,以确保其不为 null。在优化后的代码中,我们可以直接使用 vo.getConsumption() == null ? 0 : vo.getConsumption() 来处理这种情况。

总而言之,使用 getOrDefault() 方法和三元运算符可以有效地优化代码逻辑,使代码更加简洁、易读、高效。


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

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