for (EmerOrWarVo emerOrWarVo : emerOrWarVoList) { for (TaskVo taskVo : taskVos) { if (emerOrWarVo.getId().equals(taskVo.getFormId())){ emerOrWarVo.setUnread(taskVo.getMsgState()); } } }优化这段代码
时间: 2024-02-14 21:09:23 浏览: 86
hibernate hql语句 投影查询的三种方式.docx
可以尝试使用 Map 来优化这段代码,避免每次嵌套循环查询,具体实现如下:
```
Map<Long, TaskVo> taskVoMap = new HashMap<>();
for (TaskVo taskVo : taskVos) {
taskVoMap.put(taskVo.getFormId(), taskVo);
}
for (EmerOrWarVo emerOrWarVo : emerOrWarVoList) {
TaskVo taskVo = taskVoMap.get(emerOrWarVo.getId());
if (taskVo != null) {
emerOrWarVo.setUnread(taskVo.getMsgState());
}
}
```
这样,我们先将 `taskVos` 集合转换成 Map,然后在遍历 `emerOrWarVoList` 的时候,直接通过 `Map` 获取对应的 `TaskVo` 对象,避免了每次嵌套循环查询的性能问题。
阅读全文