ArrayList和LinkedList区别-2 方法

时间:2024-03-16 19:05:34
当一个元素被加到ArrayList的最开端时,所有已经存在的元素都会后移,这就意味着数据移动和复制上的开销。相反的,将一个元素加到LinkedList的最开端只是简单的未这个元素分配一个记录,然后调整两个连接。在LinkedList的开端增加一个元素的开销是固定的,而在ArrayList的开端增加一个元素的开销是与ArrayList的大小成比例的。
39d4c0612e53fb26df5f5d49c5082e82.png
package work;
import java.util.*;
// 假如有一个列表,要对其进行大量的插入和删除操作
// 以一个极端的例子,重复的在一个列表的开端插入一个元素
public class ListCompare {
   static final int N=50000;
   static long timeList(List list){
       long start=System.currentTimeMillis();
       Object o = new Object();
       for(int i=0;i<N;i++)
           list.add(0, o);
       return System.currentTimeMillis()-start;
   }
   public static void main(String[] args) {
       System.out.println("ArrayList耗时:"+timeList(new ArrayList()));
       System.out.println("LinkedList耗时:"+timeList(new LinkedList()));
   }
}

相关文章