package com.data.struct;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Test2 {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
int runTime = 1000;//执行次数
for (int i = 0; i < 1000 * 1000; i++) {
list.add(i);
}
int size = list.size();
long currTime = System.currentTimeMillis();//开始分析前的系统时间
//基本的for
for(int j = 0; j < runTime; j++) {
for (int i = 0; i < size; i++) {
list.get(i);
}
}
long time1 = System.currentTimeMillis();
//foreach
for(int j = 0; j < runTime; j++) {
for (Integer integer : list) {
}
}
long time2 = System.currentTimeMillis();
for(int j = 0; j < runTime; j++) {
//while
int i = 0 ;
while(i < size){
list.get(i++);
}
}
long time3 = System.currentTimeMillis();
for(int j = 0; j < runTime; j++) {//普通for循环
for (int i = 0; i < list.size(); i++) {
list.get(i);
}
}
long time4 = System.currentTimeMillis();
for(int j = 0; j < runTime; j++) {//迭代
Iterator<Integer> iter = list.iterator();
while(iter.hasNext()) {
iter.next();
}
}
long time5 = System.currentTimeMillis();
long time = time1 - currTime ;
System.out.print("use for:" + time);
time = time2 - time1;
System.out.print("\tuse foreach:" + time);
time = time3 - time2;
System.out.print("\tuse while:" + time);
time = time4 - time3;
System.out.print("\tuse for2:" + time);
time = time5 - time4;
System.out.print("\tuse iterator:" + time);
System.out.println();
}
}
use for:6035 use foreach:13345 use while:5930 use for2:9853 use iterator:11767