在數據量爲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循環遍歷。