Java数据结构漫谈-LinkedList
同样是List的数据结构,LinkedList是使用了前后指针,指明节点的方式来表示链表的,这与之前介绍的ArrayList http://www.cnblogs.com/yakovchang/p/java_arraylist.html 中使用数组的方式是截然不同的。LinkedList中的存储节点被称作节点(Node),一个节点的定义如下所示: 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; } } 这是LinkedList的一个内部类,不需要使用LinkedList的程序员关心。 LinkedList正是通过next,prev这两个指针来串联起整个List的。 注意:Node节点在初始化的时候同时指明了初始化的节点的前后节点是什么,所以在之后的代码中,往往没有明显的写明新的节点的前后指针指向了哪里。 在LinkedList本身中仅仅记录了List的开始和结束节点,当然,也记录了size: transient int size = 0; transient Node<E> first;