1 初级代码
public void refresh(Long[] smsSendIds) {
// 创建一个ArrayList集合
List ids = new ArrayList<>();
// 循环数组smsSendIds,为了拿到每一个id。
for (int i = 0; i < smsSendIds.length; i++) {
ids.add(smsSendIds[i]);
}
// 根据id查询到所有的对象
List<SmsSend> list = smsSendDao.selectBatchIds(ids);
// 循环拿到每一个对象
for (int i = 0; i < list.size(); i++) {
QueryWrapper qw = new QueryWrapper();
qw.eq("coach_id", list.get(i).getId());
// 根据对象的某个字段(另一张表的id)删除数据
sportsDao.delete(qw);
}
// 删除本表的数据
smsSendDao.delete(smsSendIds);
}
2 普通代码
public void refresh(Long[] smsSendIds) {
List<Long> ids = new ArrayList<>();
// 优化代码
Collections.addAll(ids, smsSendIds);
List<SmsSend> list = smsSendDao.selectBatchIds(ids);
// 优化代码
for (SmsSend smsSend : list) {
QueryWrapper qw = new QueryWrapper();
qw.eq("coach_id", smsSend.getId());
sportsDao.delete(qw);
}
smsSendDao.delete(smsSendIds);
}
3 优化
public void refresh(Long[] smsSendIds) {
// 优化代码
List<Long> ids = new ArrayList<>(Arrays.asList(smsSendIds));
List<SmsSend> list = smsSendDao.selectBatchIds(ids);
for (SmsSend smsSend : list) {
QueryWrapper qw = new QueryWrapper();
qw.eq("coach_id", smsSend.getId());
sportsDao.delete(qw);
}
smsSendDao.delete(smsSendIds);
}
小结:
1,看到下标循环(length)的时候,考虑一下其它方法;
2,Collections.addAll()的使用以及增强for的使用;
3,Arrays.asList()的使用。