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