你这个问题我前几天看到了,也回去想了许久,但是一直想不到解决方法!后来返回去看了一下API文档,我是这么认为的:
ArrayList是50%扩容,Vector是100%扩容的,但是ArrayList是同步!Vector非同步的!要是比较他们的扩容的确不好比!
但是我这么想的,我做了一个不需要同步的小测试,都是写入一个很大的数组,就可以看出Vector的扩容是比ArrayList快的!- import java.util.ArrayList;
- import java.util.Vector;
- public class Demo1 {
- public static void main(String[] args) {
- ArrayList<Object> arr = new ArrayList<Object>();
- Vector<Object> vec = new Vector<Object>();
- long start1 = System.currentTimeMillis();
- for (int i = 0; i < 10000000; i++) {
- arr.add(i);
- }
- long end1 = System.currentTimeMillis();
- System.out.println("ArrayList的用时是"+(end1-start1)+"毫秒");
-
-
- long start2 = System.currentTimeMillis();
- for (int i = 0; i < 10000000; i++) {
- vec.add(i);
- }
- long end2 = System.currentTimeMillis();
- System.out.println("Vector的用时是"+(end2-start2)+"毫秒");
- }
- }
复制代码 以上是我的想法与测试,不知道是否合适!但是我认为还是能够比较出两者的扩容的区别的!你还可以把数组调的更大!效果更明显! |