import java.util.ArrayList;
import java.util.List;
public class Main {
private static void test(List<Integer> list) {
long start = 0L;
long end = 0L;
// ==============================
start = System.currentTimeMillis();
for (Integer i : list) {
}
end = System.currentTimeMillis();
System.out.println(end - start);
// ==============================
start = System.currentTimeMillis();
for (int i=0;i<list.size();i++) {
Integer j=list.get(i);
}
end = System.currentTimeMillis();
System.out.println(end - start);
// ==============================
start = System.currentTimeMillis();
for (int i=0,k=list.size();i<k;i++) {
Integer j=list.get(i);
}
end = System.currentTimeMillis();
System.out.println(end - start);
}
public static void main(String[] args) {
List<Integer> list=new ArrayList<>();
for(int i=0;i<20000000;i++){
list.add(i);
}
test(list);
}
}
迭代器:85ms(用了Iterator的遍历,Iterator是需要考虑同步的)
下标访问:60ms(ArrayList的效率要比LinkedList的效率要高,因为Array擅长随机访问)
优化的下标访问:59ms