private final static int LIVE_TIME = 100000;
public static void main(String[] args) {
List<Integer> arrayList = new ArrayList<>();
List<Integer> linkedList = new LinkedList<>();
for(int i=0;i<LIVE_TIME;i++){
arrayList.add(i);
linkedList.add(i);
}
long startTime = System.currentTimeMillis();
for(int i = 0;i<LIVE_TIME;i++){
arrayList.get(i);
}
System.out.println("ArrayList的遍历速度:"+(System.currentTimeMillis()-startTime)+"ms");
startTime = System.currentTimeMillis();
for(int i=0;i<LIVE_TIME;i++){
linkedList.get(i);
}
System.out.println("LinkedList的遍历速度:"+(System.currentTimeMillis()-startTime)+"ms");
}
// 1000ms 5000ms 10000ms 50000ms 100000ms
// 速度对比:arraylist: 0ms 1ms 3ms 6ms 6ms
// linkedlist: 3ms 19ms 58ms 1792ms 6342ms
综上实验,各位Java程序员朋友们,切记一定不要使用普通for循环去遍历LinkedList。使用迭代器或者foreach循环(foreach循环的原理就是迭代器)去遍历LinkedList即可,这种方式是直接按照地址去找数据的,将会大大提升遍历LinkedList的效率。