ArrayList之trimToSize方法

本文深入探讨了Java中ArrayList的trimToSize()方法,该方法用于调整ArrayList的容量,使其等于实际大小,从而优化内存使用。通过示例代码和debug分析,详细解释了方法的工作原理和应用场景。

看过ArrayList源码的朋友有没有看到里面有个不常用的方法:

这方法是干嘛的呢?说白了就是瘦身用的。

下面演示一下:

public class Test {

    public static void main(String[] args) {
        // 注意:trimToSize()方法属于ArrayList
        ArrayList<String> names = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            names.add("Tom" + i);
        }
        names.add("Jim");
        names.trimToSize();
        System.out.println(names);
    }
}

接下来看看debug:

执行完for循环,此时显示集合容量是10,有的同学说使用IDEA进行debug没有显示elementData,操作如下设置即可:

接下来再添加一个元素:

此时集合容量变成了15,并且为null的元素不显示,来看一下ArrayList的扩容源码:

此时,oldCapacity = 10,1010(10)右移一位0101(5),newCapacity = 10 + 5 = 15;

之后调用trimToSize()方法,再看看debug内容:

这个时候集合的容量变成了11,也就是变成了集合的实际容量,动态增加的部分被删除了。

此方法的目的是为了节约内存空间设置的,相当于手动回收内存,对JAVA语言来说意义不大,了解即可。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值