在面试中经常碰到:ArrayList和LinkedList的特点和区别?
个人认为这个问题的回答应该分成这几部分:
-
介绍ArrayList底层实现
-
介绍LinkedList底层实现
-
两者个适用于哪些场合
本文也是按照上面这几部分组织的。
ArrayList的源码解析
成员属性源码解析
-
public class ArrayList<E>
-
extends AbstractList<E>
-
implements List<E>, RandomAccess
-
,Cloneable, java.io.Serializable {
-
private static final long
-
serialVersionUID
-
= 8683452581122892189L;
-
//默认容量是10
-
private static final int
-
DEFAULT_CAPACITY = 10;
-
//当传入ArrayList构造器的容量为0时
-
//用这个数组表示:容器的容量为0
-
private static final Object[]
-
EMPTY_ELEMENTDATA = {};