测试结果
style1 —— for(int i : list) —— 39563185毫微秒
style2 —— for(int i = 0; i < list.size(); i++) —— 5012893毫微秒
style3 —— for(int i = 0; i < size; i++) —— 3683956毫微秒
Style4 —— for(int i = list.size() - 1; i > -1; i–)—— 3199474毫微秒
结论:
style1性能最低,原因增强的for循环内部使用了迭代iterator 形式,创建interator和调用interator.get() 都需要时间。
style2是程序员最常用的循环方式,性能一般,原因在于list.size()做为循环判断的标准,每次循环都要比较一次(没有意义)。
style3和style4性能差不多,单位是”毫微秒”,1秒=1000豪秒;1毫秒=1000微秒;1微秒=1000毫微秒。
style4性能最高,实践说明一切! 可有一个问题,经过多次测试发现style4不稳定,消耗时间偶尔会超过style3。
推荐:
style3和style4性能相差不多,style4不稳定,而且用style4有些时候会导致代码的可读性差。so,我推荐style3,JDK源码里也采用了style3。
int size = list.size();
for (int i = 0; i < size; i++) {
}