java中ArrayList和LinkedList区别

ArrayList和LinkedList最主要的区别是基于不同数据结构

ArrayList是基于动态数组的数据结构,LinkedList基于链表的数据结构,针对这点,从时间复杂度和空间复杂度来看主要区别:

1.时间复杂度

对于随机访问,ArrayList通过索引快速定位元素位置;而LinkedList需要对列表中元素挨个查找。所以ArrayList快于LinkedList

对于删除插入操作,ArrayList需要对数组重新排序,而且在数组装满的时候要将所有的数据重新装入一个新的数组;LinkedList只需添加一项Entry对象。所以LinkedList快于ArrayList

2.空间复杂度

 LinkedList需要更多的内存,因为ArrayList的每个索引的位置是实际的数据,而LinkedList中的每个节点中存储的是实际的数据和前后节点的位置

引用:

http://pengcqu.iteye.com/blog/502676

http://www.importnew.com/6629.html

原文地址:https://www.cnblogs.com/liweizai/p/6901467.html