1.结构
LinkedList结构和ArrayList结构类似,也实现了List接口,因此LinkedList大多数方法名称我们已经很熟悉了.
LinkedList和ArrayList有着一些重要的性能区别,例如,LinkedList没有ArrayList类的随机访问功能.下图为LinkedList部分方法图:
2.源码分析
2.1 类头
public class LinkedList<E>
extends AbstractSequentialList<E>
implements List<E>, Deque<E>, Cloneable, java.io.Serializable
其中的Deque接口提供了双向队列需要实现的方法,例如:addFirst(E),addLast(E)等等.
2.2 字段
private static final long serialVersionUID = 876323262645176354L;
transient int size = 0;
transient Node<E> first;
transient Node<E> last;
这其中size,first,last字段都是被transient关键词修饰的,这说明在序列化的时候这三个字段都不会被保存.由此看看LinkedList关于序列化的方法.
private void writeObject(java.io.ObjectOutputStream s)
throws java.io.IOException {
// Write out any hidden serialization magic
s.defaultWriteObject();
// Write out size
s.writeInt(size);
// Write out all elements in the proper order.
for (Node<E> x = first; x != null; x = x.next)
s