java foreach与for速度比较
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(){
}
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(){
}
}