ArrayList和LinkedList的区别
1. ArrayList
1.数据结构
ArrayList是基于动态数组的,实现了动态扩容
调用grow方法,通过位移操作扩容为原来的1.5倍
2. 相关操作(查询、添加和删除)
ArrayList查询快,添加和删除慢
3. 源码
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{
}
- 实现了RandomAccess接口,支持快速随机访问
- 实现了Cloneable接口,能被克隆
2. LinkedList
1. 数据结构
LinkedList是基于链表的(准确来说是双向链表),可以模拟链式队列,链式堆栈等数据结构
2. 相关操作
LinkedList查询慢,添加和删除快
3. 源码
public class LinkedList<E>
extends AbstractSequentialList<E>
implements List<E>, Deque<E>, Cloneable, java.io.Serializable
{
}