ArrayList:底层为数组,元素有序,存在索引
在jdk1.8之后,它的默认构造函数的长度为0;(之前默认10)
private static final int DEFAULT_CAPACITY = 10;
private static final Object[] EMPTY_ELEMENTDATA = {};
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
三个成员变量控制它的长度初始化值
集合框架之ArrayList底层长度扩容实现
1、它的默认构造函数长度为null;
2、看它的add()方法:
集合框架之ArrayList底层长度扩容实现
1、调用第一个方法,给它赋初始值,大小在最小容量和DEFAULT_CAPACITY的值中取最大值
2、比较它的长度和数据长度大小,执行grow()方法
集合框架之ArrayList底层长度扩容实现
这就是它的扩容机制,他的最大扩容长度为
private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;

如果还不够,就执行hugeCapacity(minCapacity);方法

相关文章:

  • 2021-11-21
  • 2021-09-01
  • 2021-05-18
  • 2021-12-04
  • 2021-07-17
  • 2021-10-28
  • 2022-12-23
  • 2021-08-20
猜你喜欢
  • 2021-08-11
  • 2022-12-23
  • 2021-12-17
  • 2021-12-26
  • 2021-07-27
  • 2021-04-29
  • 2022-12-23
相关资源
相似解决方案