1 ArrayList的基于的英文索引的数据接口,它的底层是数组。它可以以O(1)时间复杂度对元素进行随机访问。与此对应,链表是以元素列表的形式存储它的数据,每一个元素都和它的前一个和后一个元素链接在一起,在这种情况下,查找某个元素的时间复杂度是O(n)
2 相对于ArrayList,LinkedList的插入,添加,删除操作速度更快,因为当元素被添加到集合任意位置的时候,不需要像数组那样重新计算大小或更新索引
3 链表比ArrayList的更占内存,因为链表为每一个节点存储了两个引用,一个指向前一个元素,一个指向下一个元素。
ArrayList的类似数组,链表类似链表,数组的优势是读取访问时可以根据索引直接找到,所以在读取的时候相比链表快,但是删除需要逐个移动,而链表再删除的时候只需要修改下指针然后释放掉要删除的内容就可以了,所以一般用ArrayList中用作读取比较多的时候,而LinkedList的用在删除比较多的时候。