if (ToolUtil.isNotEmpty(bySoftwareScoreAll) && ToolUtil.isNotEmpty(bySoftwareNumAll)) { Map<Long, SoftwareNumVo> numVoMap = bySoftwareNumAll.stream().collect(Collectors.toMap(SoftwareNumVo::getSoftwareId, a -> a, (k1, k2) -> k1)); bySoftwareScoreAll.forEach(b -> { SoftwareNumVo softwareNumVo = numVoMap.get(b.getSoftwareId()); List<SoftwareNumVo> day7Data = tSoftwareOnlineTimeDao.getDay7Data(b.getSoftwareId()); if (ToolUtil.isNotEmpty(softwareNumVo)) { b.setNumber(softwareNumVo.getNumber()); } else { b.setNumber(0L); } b.setList(day7Data); softwareNumVoList.add(b); }); } else if (ToolUtil.isNotEmpty(bySoftwareScoreAll) && ToolUtil.isEmpty(bySoftwareNumAll)) { bySoftwareScoreAll.forEach(b -> { b.setNumber(0L); }); softwareNumVoList.addAll(bySoftwareScoreAll); } else if (ToolUtil.isNotEmpty(bySoftwareNumAll) && ToolUtil.isEmpty(bySoftwareScoreAll)) { bySoftwareNumAll.forEach(b -> { b.setNum60(0L); b.setNum70(0L); b.setNum80(0L); b.setNum90(0L); }); softwareNumVoList.addAll(bySoftwareNumAll); }这段代码可以优化吗?
时间: 2024-03-31 16:33:53 浏览: 50
Hibernate查询语言.doc
这段代码可以进行如下的优化:
1. 在第一个 if 语句中,可以将 `bySoftwareNumAll` 转换为 Map,然后直接在 foreach 循环中使用该 Map,而不需要每次都调用 `numVoMap.get(b.getSoftwareId())`,这样可以减少时间复杂度。
2. 在第二个和第三个 if 语句中,可以将 `bySoftwareScoreAll` 和 `bySoftwareNumAll` 的数据结构进行统一,这样可以避免在循环中进行判断,从而提高代码的可读性和性能。
下面是优化后的代码:
```
Map<Long, SoftwareNumVo> numVoMap = bySoftwareNumAll.stream().collect(Collectors.toMap(SoftwareNumVo::getSoftwareId, a -> a, (k1, k2) -> k1));
for (SoftwareScoreVo b : bySoftwareScoreAll) {
SoftwareNumVo softwareNumVo = numVoMap.get(b.getSoftwareId());
List<SoftwareNumVo> day7Data = tSoftwareOnlineTimeDao.getDay7Data(b.getSoftwareId());
b.setNumber(softwareNumVo != null ? softwareNumVo.getNumber() : 0L);
b.setList(day7Data);
softwareNumVoList.add(b);
}
for (SoftwareNumVo b : bySoftwareNumAll) {
b.setNum60(0L);
b.setNum70(0L);
b.setNum80(0L);
b.setNum90(0L);
}
softwareNumVoList.addAll(bySoftwareNumAll);
```
这个优化后的代码通过将 `bySoftwareNumAll` 转换为 Map,并且将 `bySoftwareScoreAll` 和 `bySoftwareNumAll` 的数据结构进行统一,简化了代码,也提高了性能。
阅读全文