for (QuerySaleOrderListVo vo : page.getRecords()) { for (UserVO u : userVOS) { if (u.getId().equals(vo.getAuditUser())) { vo.setAuditUser(u.getUserName()); break; } } for (UserVO u : userVOS) { if (u.getId().equals(vo.getOrderUser())) { vo.setOrderUser(u.getUserName()); break; } } }
时间: 2024-02-10 09:15:03 浏览: 68
这段代码的作用是将销售订单列表中的审核人 ID 和下单人 ID 转换成对应的用户名,以便更好地展示数据。
但是这段代码中使用了两个嵌套的 for 循环来遍历用户列表,时间复杂度为 O(n^2),当用户列表和销售订单列表的数据量较大时,性能会非常低下。
为了优化这段代码,可以使用 Map 来存储用户列表中的用户 ID 和用户名之间的映射关系,然后在遍历销售订单列表时,直接从 Map 中获取对应的用户名,并将其赋值给销售订单对象。
具体实现可以参考以下代码:
```
Map<String, String> userMap = new HashMap<>();
for (UserVO u : userVOS) {
userMap.put(u.getId(), u.getUserName());
}
for (QuerySaleOrderListVo vo : page.getRecords()) {
String auditUserName = userMap.get(vo.getAuditUser());
if (auditUserName != null) {
vo.setAuditUser(auditUserName);
}
String orderUserName = userMap.get(vo.getOrderUser());
if (orderUserName != null) {
vo.setOrderUser(orderUserName);
}
}
```
这样,就避免了嵌套循环的问题,时间复杂度降为 O(n),提高了性能。
阅读全文