LikedList,一个dequeue、queue、链表的杂合体,操作很简单。不过还是写写吧
构造函数
public LinkedList() {
}
什么都没干
public LinkedList(Collection<? extends E> c) {
this();
addAll(c);
}
执行了一下addAll
链表节点
private static class Node<E> {
E item;
Node<E> next;
Node<E> prev;
Node(Node<E> prev, E element, Node<E> next) {
this.item = element;
this.next = next;
this.prev = prev;
}
}
一个正常双向链表的节点
添加操作
public boolean add(E e) {
linkLast(e);
return true;
}
void linkLast(E e) {
final Node<E> l = last;
final Node<E> newNode = new Node<>(l, e, null);
last = newNode;
if (l == null)
first = newNode;
else
l.next = newNode;
size++;
modCount++;
}
新建一个节点,如果尾节点为空,设置为头节点,否则设置为尾节点的下一节点。链表长度(size)和修改次数(modCount)加一。
太简单。不写了。。。。。