測試ArrayList和LinkedList的效率
阿新 • • 發佈:2019-01-02
測試程式碼如下
測試結果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還要少。