当我(分别)运行时:
package containers;
import java.util.*;
public static void main(String[] args) {
List<Integer> arLst = new ArrayList<Integer>();
List<Integer> lnLst = new LinkedList<Integer>();
long start = System.currentTimeMillis();
for (int i = 0; i < 10000000; i++) {
arLst.add(i);
}
System.out.println("Array list: "+Long.toString(System.currentTimeMillis()-start));
start = System.currentTimeMillis();
for (int i = 0; i < 10000000; i++) {
lnLst.add(i);
}
System.out.println("Linked list: "+Long.toString(System.currentTimeMillis()-start));
}
我得到大致相同的执行时间。我知道 LinkedList 的添加时间应该更快。我想知道为什么..(对于中间插入和最后一个元素来说是有道理的 - 因为数组知道在 O(1) 中插入的位置,不像 LinkedList 必须遍历整个列表,我记得)。