ArrayList 和 LinkedList 是两种不同类型的 Java 集合类。
ArrayList 是基于数组实现的动态数组,它内部维护了一个数组来存储元素。当需要扩容时,ArrayList 会创建一个比当前数组大的新数组,并将原数组的元素复制到新数组中,然后再使用新数组代替原数组。
具体来说,ArrayList 中扩容机制如下:
当向 ArrayList 中加入元素,如果当前数组已满,则需要扩容。
新数组的大小是原数组的两倍(或者原数组的大小加上一个固定值)。
创建一个新数组,并将原数组中的元素复制到新数组中。
使用新数组代替原数组,原数组被垃圾回收。