Java中关于ArrayList和LinkedList的差别

ArrayList和LinkedList的差别

ArrayList

ArrayList 是作为普通数组实现的。因此,在中间插入元素要求我们首先将所有后续元素移动一个位置,然后将新元素放入空闲插槽。获取和设置元素(get、set)的速度很快,因为这些操作只是处理相关的数组元素。

LinkedList

具有不同的内部结构。它是作为包含相互关联元素的列表实现的:一组不同的元素,每个元素存储对列表中下一个和上一个元素的引用。要将元素插入此类列表的中间位置,只需更改其未来邻近元素的引用即可。但是,要获取第 130 个元素,必须从 0 到 130 遍历每个对象。换句话说,get 和 set 操作的速度会很慢。

具体比较如下
Java中关于ArrayList和LinkedList的差别
提议:如果经常要在集合中间插入(或删除)元素,最好使用 LinkedList。在所有其他情况下,ArrayList 更适用。