67 java集合和泛型_17 _ArrayList与LInkedList的区别 对比项 ArrayList LinkedList 底层结构 (动态)数组 双向链表 查询 快 慢 增删 慢 快 随机访问(时间复杂度) O(1) O(N) 遍历(时间复杂度) O(N
67 java集合和泛型_17 _ArrayList与LInkedList的区别
对比项
ArrayList
LinkedList
底层结构
(动态)数组
双向链表
查询
快
慢
增删
慢
快
随机访问(时间复杂度)
O(1)
O(N)
遍历(时间复杂度)
O(N)
O(N/2)
头部插入删除(时间复杂度)
O(N)
O(1)
尾部插入删除(时间复杂度)
O(1)
O(1)
中间插入删除
效率低
效率高
总结:
ArrayList和LinkedList在性能上各有优缺点,都有各自所适用的地方,总的说来可以描述如下:
可以这样说:当操作是在一列数据的后面添加数据而不是在前面或中间,并且需要随机地访问其中的元素时,使用ArrayList会提供比较好的性能;当你的操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用LinkedList了