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

posted @ 2017-05-24 22:56  夏无蝉鸣  阅读(518)  评论(0编辑  收藏  举报