嗨,大家好,我是小米!今天我们要谈论的是 Java 中两个常用的集合类:ArrayList 和 LinkedList。大家都知道,这两者在新增和删除元素的操作上有一些差异,那么它们究竟在性能上有何表现呢?我们通过深入源码解析和性能测试来一探究竟!
ArrayList 新增元素到末尾
这是最常见的新增元素操作,我们使用 add 方法将元素直接添加到 ArrayList 的末尾。
源码解析
下面是 ArrayList 新增元素的关键源码:
ArrayList 新增元素到指定索引位置
有时候,我们需要在 ArrayList 的任意位置添加元素。我们可以使用 add(int index, E element) 方法,将元素插入到指定的索引位置。
源码解析
下面是在任意位置添加元素的新增操作源码:
相同之处
- 在两种情况下,都会调用 ensureCapacityInternal 方法来确保容量足够。
- 都会涉及数组的复制或移动操作,确保新增元素后数组的有序性。
不同之处
- 直