ArrayList优化,ensureCapacity的使用与测试

来源:互联网 发布:网络购物合同纠纷案由 编辑:程序博客网 时间:2024/05/26 16:01
    public static void main(String[] args) throws IOException {        final int index=10000000;        Object obj=new Object();        ArrayList list1=new ArrayList();        long start=System.currentTimeMillis();        for(int i=0;i<index;i++){            list1.add(obj);        }        System.out.println("未显示扩容:"+(System.currentTimeMillis()-start));        ArrayList list2=new ArrayList();        long start2=System.currentTimeMillis();        list2.ensureCapacity(index);//显示的对数组进行扩容        for(int i=0;i<index;i++){            list2.add(obj);        }        System.out.println("ensureCapacity显示扩容:"+(System.currentTimeMillis()-start2));    }



执行结果:

1. 当index为百万级别时

未显示扩容:32

ensureCapacity显示扩容:15

2. 当index为千万级别时

未显示扩容:210

ensureCapacity显示扩容:81

3.当index为亿级别时

未显示扩容:1848

ensureCapacity显示扩容:11946
当数据量在亿级以上通过显示扩容的操作效率更低了,
这只是个人的初步测试,有什么错误欢迎提出。