Node<E> newNode = new Node<>(pred, e, null); if (pred == null) first = newNode;
Node<E> newNode = new Node<>(pred, e, null); if (pred == null) first = newNode;
public class LinkedListIterator<T> implements Iterator<T> { final LinkedList<T> list; LinkedList<T>.Node previous; LinkedList<T>.Node current; boolean canRemove; public LinkedListIterator(LinkedList<T> list) { // Required by remove. this.list = list; // Required by remove. this.canRemove = false; // No change, just making it explicit. this.previous = null; // Bogus "pre-front" Node, for before first call to next. this.current = this.list.new Node(this.list.front, null); } // etc... }
/** * Inserts element e before non-null Node succ. */ void linkBefore(E e, Node<E> succ) { // assert succ != null; final Node<E> pred = succ.prev; final Node<E> newNode = new Node<>(pred, e, succ); succ.prev = newNode; if (pred == null) first = newNode; else pred.next = newNode; size++; modCount++; }
/** * Inserts element e before non-null Node succ. */ void linkBefore(E e, Node<E> succ) { // assert succ != null; final Node<E> pred = succ.prev; final Node<E> newNode = new Node<>(pred, e, succ); succ.prev = newNode; if (pred == null) first = newNode; else pred.next = newNode; size++; modCount++; }
/** * Links e as last element. */ 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++; }
/** * Links e as first element. */ private void linkFirst(E e) { final Node<E> f = first; final Node<E> newNode = new Node<>(null, e, f); first = newNode; if (f == null) last = newNode; else f.prev = newNode; size++; modCount++; }
/** * Links e as last element. */ 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++; }
/** * Links e as first element. */ private void linkFirst(E e) { final Node<E> f = first; final Node<E> newNode = new Node<>(null, e, f); first = newNode; if (f == null) last = newNode; else f.prev = newNode; size++; modCount++; }
public void addFirst(E o) { new Node<E>(o, header.next); ++size; }
public void addLast(E o) { new Node<E>(o, header); ++size; }
private void addBefore(E o, Node<E> target) { new Node<E>(o, target); ++size; }
@Override public void clear() { header= new Node<E>(); size= 0; }