ArrayList 扩容机制
时间: 2023-09-03 20:05:44 浏览: 263
ArrayList扩容机制源码解析.md
5星 · 资源好评率100%
ArrayList 是 Java 中的动态数组,它可以根据需要自动调整大小。当我们向 ArrayList 添加元素时,如果当前内部数组已满,则扩容机制会触发,ArrayList 会创建一个更大的数组,并将原来的元素复制到新的数组中。
具体扩容机制如下:
1. 当我们创建一个 ArrayList 时,会初始化一个初始容量(默认为 10)的内部数组。
2. 当我们添加元素到 ArrayList 中时,如果当前元素个数超过了内部数组的容量,则会触发扩容机制。
3. 扩容时,ArrayList 会创建一个新的容量更大的数组(通常是当前容量的 1.5 倍),然后将原来数组中的元素复制到新数组中。
4. 扩容完成后,ArrayList 会使用新的数组作为内部数组,并继续添加元素。
需要注意的是,ArrayList 的扩容机制是相对昂贵的操作,因为需要重新分配内存并复制元素。为了优化性能,可以在创建 ArrayList 时指定一个较大的初始容量,或者使用 `ensureCapacity` 方法手动设置初始容量,以减少频繁扩容的次数。
阅读全文