Arraylist 与 LinkedList 区别

Arraylist 

Arraylist 实现了接口List, RandomAccess, Cloneable, java.io.Serializable,继承了AbstractList。具备了快速访问能力(读取时间O(1)),复制能力和序列化;底层通过数组实现,默认容量是10(扩容算法:新长度newCapacity为旧长度的1.5倍,>>1右移一位就是旧长度/2);新增、删除元素都会做一次扩容、数组复制操作;需要一组连续的内存空间存储元素。

LinkedList

LinkedList实现了接口List, Deque, Cloneable, java.io.Serializable,继承了AbstractSequentialList。具备了双向队列(维护了两个队列)的特征、复制能力和序列化;底层通过Node节点实现,没有默认容量;获取元数据时,需遍历整个队列,时间耗时相对较高;不需要连续内存空间存储数据。

你可能感兴趣的:(Arraylist 与 LinkedList 区别)