美文网首页
Java两种for循环的比较

Java两种for循环的比较

作者: detry | 来源:发表于2015-07-05 11:25 被阅读2855次

最近在思考一个问题,公司里很多人写代码,都是用增强型的for循环,就是for(:),这种格式的代码,我一般用的是for(;;***)这种格式的,今天试着去比较了一下这两种的区别。

总的来说,如果用数组实现的,那最好用普通for循环,因为下标索引速度更快。增强型的for循环,其实是用iterator迭代器来做的,迭代器适合链表格式的存储结构。

所以,公司里很多人的代码都不规范,或者没有考虑效率问题,只是单纯的完成系统功能,这是很不负责任的做法。为一个公司做事,就要把代码优化到最好,比如用普通型for循环,我们可以先在第一步算出集合的大小,这样就省去了每次都要计算集合大小。

** int size =arraylist.size(); for(int i=0;i<size;i++)**
这样做,就提高了代码的效率了。


写了一段代码来印证自己的理论:

    package com.netease.corp; 
    import java.util.ArrayList;
    import java.util.LinkedList;
    import java.util.List;

   public class ForIterator {
   private static long MAX_NUMBER=100000;

    public static void main(String[] args) {
    List<Integer> linkedList=new LinkedList<Integer>();
    List<Integer> arrayList=new ArrayList<Integer>();
    for(int i=0;i<MAX_NUMBER;i++){   //给两个list赋值
        linkedList.add(100);
        arrayList.add(100);
    }
    getForCirculationTime(linkedList);
    getForCirculationTime(arrayList);
   }


/**
 * 方法功能:获取两种for循环的时间
 * @param lists
 */
public static void getForCirculationTime(List<Integer> lists){
    long starTime=System.currentTimeMillis();
    int n=0;
    int size=lists.size();
    for(int i=0;i<size;i++){
        n=lists.get(i);
    }
    Class s =lists.getClass();   //获取class的名
    String name=s.getName();
    System.out.println(s+"普通for循环 调用get方法花的时间:"+(System.currentTimeMillis()-starTime));
    
    starTime=System.currentTimeMillis();
    for(int  in:lists){
        n=in;
    }
    System.out.println(s+"增强型的for循环get方法花的时间:"+(System.currentTimeMillis()-starTime));        
    System.out.println();
    }
}
捕获.PNG

相关文章

  • Java两种for循环的比较

    最近在思考一个问题,公司里很多人写代码,都是用增强型的for循环,就是for(:),这种格式的代码,我一般用的是f...

  • 一个Java 程序员的python学习之路1- for循环

    python的for循环只有一种形式 python的for循环和java不同,在Java中支持两种形式: 和 而在...

  • Java 中while(true)和for(;;)两种循环的比较

    背景 最近有接触很多的中间件源码,注意到部分的循环都写成了for(;;),说实话以前也有注意过。在平常自己写业务代...

  • python中的语法规则(四)

    python中的循环语句的用法:循环语句可以使指定的代码块循环指定的次数,循环语句和Java中的循环语句一样有两种...

  • 容器遍历时删除元素

    在Java中,对于容器的遍历有for循环和爹代器两种方法,其中,for循环有包括了传统的for循环和for eac...

  • Java Stream与for循环比较

    导读: 笔者使用的是小米笔记本 1.99 GHz 四核Intel Core i7,本文对比了几种方法求素数耗时。这...

  • Kevin Learn Kotlin:循环控制

    循环控制语句也是每门语言不可缺少的一部分,Java 中主要有两种循环语句:while 循环和 for 循环。Kot...

  • 字典循环两种方法比较

    dic = { 'name' : 'niuli' , 'age' : ' 23' } 方法1: 慢速 会把字典转...

  • Java 入门之流程控制语句

    主要分为两种,Java** 循环控制和条件判断**。 1. 循环控制 可能存在一种情况,当我们需要执行的代码块数...

  • 3.7.4for循环

    1.什么是for循环循环也是Java语言中一种处理循环的编程结构。一般程序员比较习惯使用for循环语法为: for...

网友评论

      本文标题:Java两种for循环的比较

      本文链接:https://www.haomeiwen.com/subject/gbeyqttx.html