java中for循环的优化
来源:互联网 发布:网络培训班 编辑:程序博客网 时间:2024/04/29 11:53
作为java中三大循环之一的for循环,大家应该用的特别多,今天那就以我在项目中遇到的for循环优化来聊一聊for循环的优化.
首先是for循环的写法上面
最原始的写法
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
为什么
在循环中,循环条件会被反复计算,如果不使用复杂表达式,而是使循环条件不变的话,程序将会运行的更快,所以在循环中应该避免使用复杂的表达式
java之循环嵌套
外小内大型
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
为什么
每次抓捕异常时非常耗时的,应该放在循环外一次性抓取,而不是应该放在循环内去每循环一次都抓取
0 0
- java中for循环的优化
- for循环的优化
- For 循环的优化
- For 循环的优化
- for循环的优化
- for循环的优化
- for循环的优化
- java中for循环中为了去掉最后一个字符的优化
- java for循环及其优化
- java中for循环
- Java中for循环
- Java 5.0 中增强的for循环
- Java中for循环的执行顺序
- Java 中 for 循环的写法
- Java中for循环的高级用法
- java中终止for循环的方式
- java中增强for循环的原理
- Java中 for循环的用法解析
- 《剑指offer》:[62]序列化二叉树
- c#中文转unicode
- leetcode-java-96. Unique Binary Search Trees
- Cocosd2d 45度地图遮挡问题
- Android6.0源码分析之蓝牙显示接收到的文件
- java中for循环的优化
- 玩具装箱(1D1D优化)[HNOI 2008][Codevs 1319]
- python+selenium 安装配置
- 货郎担(旅行售货商)动态规划
- 网页http请求的整个过程
- linux I2C结构体
- Android仿qq下拉刷新及向左滑动列表----PullToRefresh, SwipeMenuListView开源项目整合
- LinkedHashMap
- linux的vi命令和查找命令