我是靠谱客的博主 舒服菠萝,最近开发中收集的这篇文章主要介绍ensureCapacity方法的使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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方法的使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部