ArrayList

本文深入解析了Java中ArrayList的工作原理,特别是其扩容机制。详细介绍了不同初始化方式下ArrayList的初始容量,以及在达到容量上限时如何进行扩容。此外,还探讨了trimToSize()方法的使用,帮助理解如何优化内存使用。
摘要由CSDN通过智能技术生成

关于看了源码的几点记录

===========================================================================

newCapacity :新容量

oldCapacity :原容量

===========================================================================

1.new ArrayList():

              elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;

              add(1) : 容量= DEFAULT_CAPACITY = 10

2.new ArrayList(0):

              elementData = EMPTY_ELEMENTDATA;

               add(1) : 容量 = 1;

3.new ArrayList(1):

             elementData = new Object[1];

             add(1) : 容量 = 1;

              add(2) : 容量 = 2;

4.容量满后,添加元素后容量变化:

       1.原容量<2时,newCapacity = oldCapacity

       2.MAX_ARRAY_SIZE时/1.5 >= 原容量 > 2时,newCapacity = oldCapacity + (oldCapacity >> 1)

      3.MAX_ARRAY_SIZE >= 原容量 > MAX_ARRAY_SIZE时/1.5时,newCapacity = Integer.MAX_VALUE - 8

      4.原容量>MAX_ARRAY_SIZE时,newCapacity = Integer.MAX_VALUE

5.trimToSize()

     数组内有多少元素,容量就变为多少

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值