2 qq 35883107 qq_35883107 于 2017.08.27 09:27 提问

for(int i=0;i<array.length;i++)问题

求教! for(int i=0;i<array.length;i++)与
int length=array.length;for(int i=0;i<length;i++)哪个效率更高?

3个回答

phenomenonsTell
phenomenonsTell   2017.08.27 10:15
已采纳
 public class Print {

    public static void main(String[] args) {
        int[] arr = new int[1000];
        long time = System.currentTimeMillis();
        for(int i = 0;i<arr.length;i++)
            System.out.print(1);
        long end = System.currentTimeMillis();
        time = end-time;
        System.out.println();
        System.out.println("time:"+time);
        time = System.currentTimeMillis();
        int len = arr.length;
        for(int i = 0;i<len;i++)
            System.out.print(1);
        end = System.currentTimeMillis();
        time = end-time;
        System.out.println();
        System.out.println("time:"+time);
    }

}

答案显而易见

qq_35883107
qq_35883107 不过把数据量在调大第二种快
3 个月之前 回复
qq_35883107
qq_35883107 执行结果相同。。。。。。。
3 个月之前 回复
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2017.08.27 09:51
首先,第一种写法由于在循环过程中会重复计算N次array.length,所以这一点来看,后一种写法更好一些。
其次,以现在计算机的计算速度来看,两种写法的效率上是没有多大的区别的。
结论就是:建议养成后一种写法的习惯,万一array.length要在循环以外的地方使用呢?
haihhhhh
haihhhhh   2017.08.27 21:04

个人感觉这点性能差别可以忽略,真正开发时肯定还是怎么顺手怎么来。我是不会写第二种。

Csdn user default icon
上传中...
上传图片
插入图片