java foreach与for速度比较

来源:互联网 发布:网络篮球游戏 编辑:程序博客网 时间:2024/05/23 23:47
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;


/***
 * jdk1.7
 * @date 2017年5月26日  下午6:05:49
 * 
 * 
 */
public class TestForEach {


public static void main(String[] args) {
   test1();
   test1();
   test1();
   test1();
}
/**ArrayList时for更快,linkedlist时foreach更快*/
public static void test1(){
   System.out.println("-------------------");
   List<A> list=new ArrayList<A>();
//    20000
//    end1:1
//    20000
//    end2:0
   
//    List<A> list=new LinkedList<>();
//    20000
//    end1:0
//    20000
//    end2:151
        int size=10000000;
        for (int i = 0; i < size; i++) {
            list.add(new A());
        }
//        for (int i = 0; i < size; i++) {
//            list.add(NULL);
//        }
        for (int i = 0; i < size; i++) {
            list.add(null);
        }
        
        System.out.println(list.size());
        A temp=null;
        long start=System.currentTimeMillis();
        int num1=0;
        for (A object : list) {
            temp=object;
            num1++;
        }
        
//        System.out.println("\n----------------");
        long end1=System.currentTimeMillis();
        System.out.println("end1:"+(end1-start));
        end1=System.currentTimeMillis();
        int num2=0;
        for (int i = 0; i < list.size(); i++) {
            temp=list.get(i);
            num2++;
        }
//        System.out.println("\n----------------");
        long end2=System.currentTimeMillis();
        System.out.println(list.size());
//        System.out.println(":"+end2+","+end1+","+start);
//        System.out.println(end1-start);
        System.out.println("end2:"+(end2-end1));
//        System.out.println(num1);
//        System.out.println(num2);
        
}



}
class A{
    public A(){
        
    }

}


原创粉丝点击