最近在项目中遇到一个需求,需要将两个数据表的数据进行比对,这涉及到了两层for循环的嵌套。一开始写得时候发现耗时太久,尝试优化一下。优化的总结如下:
1.将for循环内的无关表达式提取到外面。
for(){
for(){
a=a*b*c;
}
}
应该要将b*c的值先算好,然后再放进循环内。否则会每次循环都浪费资源。
2.将for里面的条件先处理好
相信大家都习惯这样写
for(int i=0;i<list.size();i++){
}
但是,先讲()的值先存进一个变量,资源消耗会更少,速度会更快,条件应改为int i=0;i<变量;i++
3.异常捕获别写在for循环里面,应该要放在外面。
4.在先遍历小的list,然后再第二层遍历大的list
for(int i=0;i<10;i++) {
for(int j=0;j<9999;j++){
}
}
这样也会提高速度。
希望有不同的看法的朋友能提出来,让我及时纠正错误,相互进步。