LinkList(双向链表实现)
LinkedList是用链表结构存储数据的,比较适合数据的动态插入和删除,随机访问和遍历速度比较慢,还提供了List接口i中没有定义的方法,专门用于操作表头和表尾的元素,所以可以当作堆栈、队列和双向队列来使用。LInkedList持有头节点和尾节点的引用,有两个构造器,一个是无参构造器,另一个是传入外部集合构造器,它没有像ArrayList一样的初始大小的构造器。 1 // 集合元素个数 2 3 transient int size = 0 ; 4 5 6 7 // 头结点引用 8 9 transient Node<E> first; 10 11 12 13 // 尾节点引用 14 transient Node<E> last; 15 16 // 无参构造器 17 public LinkedList() {} 18 19 // 传入外部集合的构造器 20 public LinkedList(Collection<? extends E> c) { 21 this (); 22 addAll(c); 23 } 24 25 // 增(添加) 26 public boolean add(E e) { 27 28 // 在链表尾部添加 29 linkLast(e); 30 return true ; 31 } 32 33 34 // 增(插入) 35 public void add(