ArrayList:
1.数组队列,是基于动态数组的数据结构,实现了可变大小的数组,允许元素null。
2.每个ArrayList实例都有一个容量,ArrayList创建对象的时候,会有一个带有参数的构造器,而此参数就是ArrayList的长度,默认长度为10,当数据增加时,
原来的长度不够用时,ArrayList就会实现自增长,将会创建一个更大的数组,数组长度为newLength = oldLength + oldLength/2;
然后将之前数组的元素拷贝到新的数组中。
3.ArrayList是基于数组实现的,而数组是一块连续的内存空间,如果在数组的任意位置插入元素,必然导致在该位置后的所有元素需要重新排列,
因此,增删改的效率相对会比较低,对于增删改的时间是和数组的大小成正比的。
4.ArrayList对于随机查询效率高。
5.ArrayList非同步的。
6.ArrayList支持序列化。
l LinkedList:
1.基于链表的数据结构,不需要维护数组容量的大小。
2.元素的增删改都会分配或操作内部每个元素对应的每个Entry对象,时间消耗是固定的所以效率相对较高。
3.但是linkedlist查询效率不高,因为对LinkedList进行随机访问时,总会进行一次列表的遍历操作,导致耗时很久,需要移动指针,所以对一个LinkedList做随机访问所消耗的时间与这个list的大小是成比例的。
4.也是非同步的。