1. 程式人生 > >LinkedList和ArrayList區別

LinkedList和ArrayList區別

else array RR for 數組下標 遍歷 如果 ring arraylist

 查詢

LinkedList查詢用的遍歷,AyyayList查詢用的是數組下標,所以對於查詢ArrayList性能高於LinkedList

新增

新增在末尾或者中間就是ArrayList比LinkedList快,如果在最前面就是LinkedList比ArrayList快

測試一下新增在末尾

public static void main(String[] args){
int flag = 100000;

ArrayList aList = new ArrayList(flag);

LinkedList lList = new LinkedList();
Long start1 = System.currentTimeMillis();
for(int i=0; i<flag;i++)
aList.add("a");
System.out.println(System.currentTimeMillis() - start1);
Long start2 = System.currentTimeMillis();
for(int i=0; i<flag;i++)
lList.add("a");
System.out.println(System.currentTimeMillis() - start2);
}

測試一下新增在中間


public static void main(String[] args){
int flag = 10000;
ArrayList aList = new ArrayList(flag);
LinkedList lList = new LinkedList();
Long start1 = System.currentTimeMillis();
for(int i=0; i<flag;i++){
if(i < flag / 2)
aList.add("a");
else
aList.add(flag / 2, "a");}
System.out.println(System.currentTimeMillis() - start1);
Long start2 = System.currentTimeMillis();
for(int i=0; i<flag;i++){
if(i < flag / 2)
lList.add("a");
else
lList.add(flag / 2, "a");}
System.out.println(System.currentTimeMillis() - start2);
}

測試一下新增在開始


public static void main(String[] args){
int flag = 10000;
ArrayList aList = new ArrayList(flag);
LinkedList lList = new LinkedList();
Long start1 = System.currentTimeMillis();
for(int i=0; i<flag;i++){
aList.add(0 ,"a");
}
System.out.println(System.currentTimeMillis() - start1);
Long start2 = System.currentTimeMillis();
for(int i=0; i<flag;i++){
lList.add(0 ,"add");
}
System.out.println(System.currentTimeMillis() - start2);
}

修改

修改在末尾或者中間就是ArrayList比LinkedList快,如果在最前面就是LinkedList比ArrayList快

刪除

刪除ArrayList比LinkedList快

LinkedList和ArrayList區別