概述
ArrayList中的ensureCapacity(int n)方法可以对ArrayList底层的数组进行扩容
ArrayList的扩容规则是变成原来最大容量的1.5倍+1
意思就是 若参数值大于底层数组长度的1.5倍,则数组的长度就扩容为这个参数值;若小于底层数组长度的1.5倍,则数组长度就扩容为底层数组长度的1.5倍。
若ArrayList中要添加大量元素,则使用ensureCapacity(int n)方法一次性增加,可优化运行效率
public class EnsureCapacityTest {
public static void main(String[] args) {
ArrayList<Object> list = new ArrayList<Object>();
final int N =10000000;
long startTime = System.currentTimeMillis();
for(int i = 0;i<N;i++) {
list.add(i);
}
long endTime = System.currentTimeMillis();
System.out.println(endTime-startTime);
list = new ArrayList<Object>();
long startTime1 = System.currentTimeMillis();
list.ensureCapacity(N);
for(int i = 0;i<N;i++) {
list.add(i);
}
long endTime1 = System.currentTimeMillis();
System.out.println(endTime1-startTime1);
}
}
运行结果:
4747
233
可看出使用ensureCapacity()方法大大增加运行效率
如果已经预知容器可能会装多少元素,最好显示的调用ensureCapacity这个方法一次性扩容到位。
最后
以上就是舒服菠萝为你收集整理的ensureCapacity方法的使用的全部内容,希望文章能够帮你解决ensureCapacity方法的使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复