标签:
首先,ArrayList和LinkedList都是Java中常见的容器类,都实现了list接口;但是因为各自实现list接口时,采用的数据结构不一样,导致他们在使用上存在差异。
下面就总结一下:
1. ArrayList是基于数组来实现的线性表,只不过它是可以动态扩展的。如果不指定ArrayList初始容量值,那么其采用默认的值10;若果向ArrayList中添加对象引用时,已经无法容纳时,会自动的扩展,扩展的系数为1.5;
2. ArrayList对于按照索引值查找是非常快速的,时间复杂度为O(1); 但是对于插入和删除就有多余的移动拷贝的消耗处理,时间复杂度为O(n);
3. LinkedList是基于双向链表的数据结构实现list接口,所以查找的执行效率较低,时间复杂度为O(n);
4. LinkedList对于插入和删除,执行效率较高,时间复杂度为O(1);
5. 从存储上看,LinkedList比ArrayList的内存消耗更高,因为每一个结点都需要有格外的两个结点的引用来表示;
注:能力有限,如有错误,请不吝赐教!
[Java基础]ArrayList与LinkedList的区别和使用场景
标签:
原文地址:http://www.cnblogs.com/yw-technology/p/5393597.html