if条件中的以下代码将调用近10,000次并且在测试中显示性能问题。
if (fileUploaderIdListVo != null && fileUploaderIdListVo.size() > 0) {
for (FileUploaderIdVo fuidVo : fileUploaderIdListVo) {
if ( fuidVo.getExploded() != null && fuidVo.getExploded().equalsIgnoreCase("Y")) {
List<Rights> rightsList = rightsDao.list(fuidVo.getContractId());
int contractTitleId = Integer.parseInt(fuidVo.getContractTitleId());
List<Integer> titleRightIds = new ArrayList<Integer>();
for(Rights right: rightsList) {
if(right!=null ) {
titleRightIds.add(right.getId());
}
}
titleRightsManager.saveRightCombination("true", user.getUid(), fuidVo.getContractId(), titleRightIds, contractTitleId,new ArrayList<String>());
}
}
}
我的想法
将rightList置于if条件之外 2.在if条件
之外再次调用saveRightCombination请提供合适的方法来改善以下代码的效果。
答案 0 :(得分:3)
您的瓶颈是访问数据库,而不是您的Java代码。您可以执行以下操作: