ArrayList优化,ensureCapacity的使用与测试

 
 
    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
 
 
当数据量在亿级以上通过显示扩容的操作效率更低了,
这只是个人的初步测试,有什么错误欢迎提出。

猜你喜欢

转载自blog.csdn.net/huang_550/article/details/77176742
今日推荐