跟ArrayList一样,我们先看这个类实现(继承)的接口(类),
public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable
后面2个不用多说,不清楚的可以看ArrayList的那篇,可以看到他比ArrayList少实现了RandomAccess接口,因为他是基于链表实现的,很好理解。我们看他实现的父类:AbstractSequentialList,这个类其实是继承了AbstractList,并对AbstractList定义的方法做了简单的实现,都是用迭代器实现的,Sequential是什么意思:按次序的,顾名思义,这个类的子类是按次序进行访问的,而非像ArrayList那样能够RandomAccess。List接口无需多说,我们再看第三个接口Deque:双端队列,而Deque其实是继承了Queue这个接口,Queue大家都熟悉,先进先出(头进尾出)的一种数据结构,而对比可以发现,Deque比Queue多出了几个方法:他可以从尾部操作这个队列,队列两端的元素既能入队也能出队,是一个 强化版的队列,如果你再做一点限制,使其只能头进头出,那么就摇身一变成为了栈。当然jdk中的栈并不是基于这个实现的,而是基于Vector实现的(线程安全的ArrayList),后面会写到这些数据结构,有兴趣的同学可以先去看一下源码,思想其实也很简单。