作为java中三大循环之一的for循环,大家应该用的特别多,今天那就以我在项目中遇到的for循环优化来聊一聊for循环的优化. 首先是for循环的写法上面 最原始的写法 public void optimalizeFor() { List list = new ...
public void optimalizeFor() {
List list = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
}
}
public void optimalizeFor() {
List list = new ArrayList<>();
for (int i = 0, len = list.size(); i < len; i++) {
}
}
优化前用时:47871
优化后用时:566
在循环中,循环条件会被反复计算,如果不使用复杂表达式,而是使循环条件不变的话,程序将会运行的更快,所以在循环中应该避免使用复杂的表达式
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 100000; j++) {
}
}
for (int i = 0; i < 100000; i++) {
for (int j = 0; j < 10; j++) {
}
}
优化前用时:7541608
优化后用时:4316
从结果可以看出来所用时间的差异非常大,这个就像拿大文件和小文件一样的道理
int a = 10, b = 11;
for (int i = 0; i < 10; i++) {
i = i * a * b;
}
int c = a * b;
for (int i = 0; i < 10; i++) {
i = i * c;
}
优化前用时:48664
优化后用时:651
还是像之前说到的,避免在循环中重复的计算发生
for (int i = 0; i < 10; i++) {
try {
} catch (Exception e) {
}
}
try {
for (int i = 0; i < 10; i++) {
}
} catch (Exception e) {
}
优化前用时:33916
优化后用时:489
每次抓捕异常时非常耗时的,应该放在循环外一次性抓取,而不是应该放在循环内去每循环一次都抓取
本站为非盈利网站,如果您喜欢这篇文章,欢迎支持我们继续运营!
本站主要用于日常笔记的记录和生活日志。本站不保证所有内容信息可靠!(大多数文章属于搬运!)如有版权问题,请联系我立即删除:“abcdsjx@126.com”。
QQ: 1164453243
邮箱: abcdsjx@126.com