在資料量為50w的時候測試資料
@Test
public void array() {
//ArrayList追加元素
long starttime = System.currentTimeMillis();
for (int i = 0; i < COUNT; i++) {
arrayList.add(i);
}
long endtime = System.currentTimeMillis();
System.out.println("ArrayList追加元素:"+(endtime - starttime));
//初始化
arrayList = new ArrayList();
//ArrayList插入元素
starttime = System.currentTimeMillis();
for (int i = 0; i < COUNT; i++) {
arrayList.add(0,i);
}
endtime = System.currentTimeMillis();
System.out.println("ArrayList插入元素:"+(endtime - starttime));
//for循環周遊ArrayList
starttime = System.currentTimeMillis();
for (int i = 0; i < COUNT; i++) {
arrayList.get(i);
}
endtime = System.currentTimeMillis();
System.out.println("for循環周遊ArrayList:"+(endtime - starttime));
//疊代器周遊ArrayList
starttime = System.currentTimeMillis();
Iterator i1 = arrayList.iterator();
Object obj1;
while(i1.hasNext()) {
obj1 = i1.next();
}
endtime = System.currentTimeMillis();
System.out.println("疊代器周遊ArrayList:"+(endtime - starttime));
}
@Test
public void linked() {
//LinkedList追加元素
long starttime = System.currentTimeMillis();
for (int i = 0; i < COUNT; i++) {
linkedList.add(i);
}
long endtime = System.currentTimeMillis();
System.out.println("LinkedList追加元素:"+(endtime - starttime));
//初始化
linkedList = new LinkedList();
//LinkedList插入元素
starttime = System.currentTimeMillis();
for (int i = 0; i < COUNT; i++) {
linkedList.add(0,i);
}
endtime = System.currentTimeMillis();
System.out.println("LinkedList插入元素:"+(endtime - starttime));
//for循環周遊LinkedList
starttime = System.currentTimeMillis();
for (int i = 0; i < COUNT; i++) {
linkedList.get(i);
}
endtime = System.currentTimeMillis();
System.out.println("for循環周遊LinkedList:"+(endtime - starttime));
//疊代器周遊LinkedList
starttime = System.currentTimeMillis();
Iterator i2 = linkedList.iterator();
Object obj2;
while(i2.hasNext()) {
obj2 = i2.next();
}
endtime = System.currentTimeMillis();
System.out.println("疊代器周遊LinkedList:"+(endtime - starttime));
}
可以看出在進行追加(有序添加)、周遊的時候ArrayList的效率高于LinkedList,但是在無序插入的時候LinkedList效率高于ArrayList。
在做其餘資料量測試的時候得出ArrayList通過for循環周遊效率要高于疊代器周遊,LinkedList疊代器周遊效率要遠高于for循環周遊。