測試代碼如下
import java.util.ArrayList;
import java.util.LinkedList;
public class arraylistPKlinkedlist {
public static void main(String[] args) {
// TODO Auto-generated method stub
arraylist();
linkedlist();
}
static void arraylist(){
ArrayList al = new ArrayList();
long start = System.currentTimeMillis();
for(int i = 0 ; i<300000 ;i++){
al.add(0,"加入元素"+i);//注意
}
long end = System.currentTimeMillis();
System.out.println("ArrayList消耗的時間"+(end - start));
}
static void linkedlist(){
LinkedList al = new LinkedList();
long start = System.currentTimeMillis();
for(int i = 0 ; i<300000 ;i++){
al.add(0,"加入元素"+i);
}
long end = System.currentTimeMillis();
System.out.println("LinkedList消耗的時間"+(end - start));
}
}
ArrayList消耗的時間45157
LinkedList消耗的時間155
這其中有一點需要注意:
在添加元素的時候,添加元素的位置很重要,這個程序添加新元素的位置每次都是第一個(這樣順序存儲的結構每次都要移動最大次數),但是如果添加元素每次都是最後一個,那麼結果就大不一樣了,ArrayList消耗的時間比LinkedList還要少。