1 class MyLinkedList<E> { 2 3 int size = 0;//集合元素的個數 4 5 Node<E> first;//指向第一個元素 6 Node<E> last;//指向最後一個元素 7 8 //元素 9 private static class Node<E> { 10 E item;//元素核心 11 Node<E> prev;//元素頭部 12 Node<E> next;//元素尾部 13 14 Node(Node<E> prev, E item,Node<E> next) { 15 this.item = item; 16 this.prev = prev; 17 this.next = next; 18 } 19 } 20 21 //集合添加元素操做 22 public boolean add(E e) { 23 linkLast(e); 24 return true; 25 } 26 27 //集合添加元素邏輯(雙向鏈表) 28 private void linkLast(E e) { 29 //局部常量l指向此時的最後一個元素 30 final Node<E> l = last; 31 // 經過l實參,使加入的新元素newNode其頭部指向集合的最後那個元素 32 Node newNode = new Node(l, e, null); 33 //將新元素newNode標記爲最後一個元素 34 last = newNode; 35 if (l == null) {//若是爲true,說明newNode是集合中添加的第一個元素 36 //將newNode標記爲第一個元素 37 first = newNode; 38 } else { //不然,就把倒數第二個元素的尾部指向最後一個元素 39 l.next = newNode; 40 } 41 size++; 42 } 43 44 }