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