qq_35883107
qq_35883107
采纳率66.7%
2017-08-27 01: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 我也不知道该叫啥 4年前
     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);
        }
    
    }
    

    答案显而易见

    点赞 1 评论 复制链接分享
  • wojiushiwo945you 毕小宝 4年前
    首先,第一种写法由于在循环过程中会重复计算N次array.length,所以这一点来看,后一种写法更好一些。
    其次,以现在计算机的计算速度来看,两种写法的效率上是没有多大的区别的。
    结论就是:建议养成后一种写法的习惯,万一array.length要在循环以外的地方使用呢?
    
    点赞 2 评论 复制链接分享
  • haihhhhh leon老海 4年前

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

    点赞 1 评论 复制链接分享

相关推荐