ArrayList 和 LinkedList 都实现了 List 接口,他们有如下的不一样点:数组
1. ArrayList 是基于索引的数据接口,它的底层是数组。它能够以O(1)时间复杂度对元素进行随机访问。与此对应,LinkedList 是以元素列表的形式存储它的数据,每个元素都和它的前一个和后一个元素连接在一块儿,在这种状况下,查找某个元素的时间复杂度是O(n)。索引
相对于 ArrayList,LinkedList 的插入,添加,删除操做速度更快,由于当元素被添加到集合任意位置的时候,不须要像数组那样从新计算大小或者是更新索引。接口
LinkedList 比 ArrayList 更占内存,由于 LinkedList 为每个节点存储了两个引用,一个指向前一个元素,一个指向下一个元素。内存