我想比较班级Vector
和班级ArrayList
中的加法方法(适用于1000个元素)。
为什么Vector
中的添加方法比ArrayList
中添加方法更快?
以下是我用来衡量的代码:
public static void main(String[] args) {
List v = new Vector();
List l = new ArrayList();
long startTime = System.nanoTime();
for (int i = 0; i < 1000; i++) {
v.add(i);
}
long duration = System.nanoTime() - startTime;
System.out.println("Vector: " + duration + " ns");
startTime = System.nanoTime();
for (int i = 0; i < 1000; i++) {
l.add(i);
}
duration = System.nanoTime() - startTime;
System.out.println("ArrayList: " + duration + " ns");
}
答案 0 :(得分:1)
由于JVM warmup,结果可能会失真。几次运行测试后,我得到了以下结果:
1553108 [ns] → Vector.add()
1420628 [ns] → ArrayList.add()
基准测试是针对10000次插入进行的。