Java16-【转载】ArrayList和LinkedList的区别
以下转载来源:https://blog.csdn.net/u011541946/article/details/80149506
ArrayList和LinkedList的区别是什么 -ArrayList底层是数组实现,查询和修改快,增删慢。 -LinkedList底层是链表实现,查询和修改慢,增删快 --共同点是:线程不安全,效率高。 List下三个类,我们到底用哪个? --查询多,用ArrayList --增删多,用LinkedList --如果都多,用ArrayList
以下转载来源:https://www.cnblogs.com/dengdi/p/13527530.html
ArrayList和LinkedList都实现了List接口,有以下的不同点:
1.ArrayList是基于索引的数据接口,它的底层是数组,他可以以0(1)时间复杂度对元素进行随机访问。与此对应,LinkedList
是以元素列表的形式存储它的数据,每一个元素都和它的前一个和后一个元素链接在一起,在这种情况下,查找某个元素的时
间复杂杜是0(n)。
2.相对于ArrayList,LinkedList的插入,添加,删除操作速度更快,因为当元素被添加到集合任意位置的时候,不需要像数组
那样重新计算大小或者更新索引。
3.LinkedList比ArrayList更占内存,因为linkedlist位每一个节点存储了两个引用,一个指向前一个元素,一个指向下一个元素。