ArrayList和LinkedList都实现了List接口:
他们有以下不同点:
ArrayList是基于索引的接口,它的底层是数组。可以以O(1)的时间复杂度对元素进行随机访问。与此对应,LinkedList是以元素列表的形式存储数据,每一个元素都与它的前一个元素和后一个元素紧密的链接到一起,这样查找一个元素的时间复杂度是O(n)。
相对于ArrayList,LinkedList插入,添加,删除速度更快,因为当元素被插入任意位置时不需要像数组那样重新计算大小或是更新索引。
LinkedList比ArrayList更占内存,因为LinkedList每个节点多存储了两个引用,一个指向前一个元素,一个指向后一个元素。