一、实现接口
1、Deque
Deque:double ended queue,双端队列,允许在两边进行插入和删除元素
Queue:队列,先进先出,在尾部插入元素,在头部删除元素。
boolean add(E e);//在尾部插入元素,当队列满时,抛出异常
boolean offer(E e);//在尾部插入元素,队列满时,返回false
E remove();//返回头部元素,并从队列中删除,当队列为空时,会抛出异常
E poll();//返回头部元素,并从队列中删除,当队列为空时,会返回特殊值null
E element();//返回头部元素,当队列为空时,会抛出异常
E peek();//返回头部元素,当队列为空时,会返回特殊值null
栈:后进先出,相关方法在Deque中
void push(E e);//入栈,在头部添加元素,如果栈满了,抛出异常
E pop();//出栈,返回头部元素,并从栈中删除,如果栈为空,抛出异常
E peek();//返回栈顶元素,如果栈为空,返回null
2、内部组成
LinkedList内部实现是一个双向链表,每个元素单独存放,元素之间通过链接连载一起。元素就是一个个节点,每个节点有一个前驱节点prev、一个后继节点next和值item组成。
LinkedList内部有三个实例变量:
transient int size=0;//链表长度,默认为0
transient Node<E> first;//指向头节点
transient Node<E> last;//指向尾节点,初始值为null