public Object getLast() { Node node = header.previous; if (node == header) { throw new NoSuchElementException(); } return node.getValue(); }
public Object getFirst() { Node node = header.next; if (node == header) { throw new NoSuchElementException(); } return node.getValue(); }
public Object getLast() { Node node = header.previous; if (node == header) { throw new NoSuchElementException(); } return node.getValue(); }
public Object set(int index, Object value) { Node node = getNode(index, false); Object oldValue = node.getValue(); updateNode(node, value); return oldValue; }
public Object previous() { checkModCount(); if (!hasPrevious()) { throw new NoSuchElementException("Already at start of list."); } next = next.previous; Object value = next.getValue(); current = next; nextIndex--; return value; }
public Object next() { checkModCount(); if (!hasNext()) { throw new NoSuchElementException("No element at index " + nextIndex + "."); } Object value = next.getValue(); current = next; next = next.next; nextIndex++; return value; }
public Object removeFirst() { Node node = header.next; if (node == header) { throw new NoSuchElementException(); } Object oldValue = node.getValue(); removeNode(node); return oldValue; }
public Object getFirst() { Node node = header.next; if (node == header) { throw new NoSuchElementException(); } return node.getValue(); }
public boolean remove(Object value) { for (Node node = header.next; node != header; node = node.next) { if (isEqualValue(node.getValue(), value)) { removeNode(node); return true; } } return false; }
public int lastIndexOf(Object value) { int i = size - 1; for (Node node = header.previous; node != header; node = node.previous) { if (isEqualValue(node.getValue(), value)) { return i; } i--; } return -1; }
public Object removeLast() { Node node = header.previous; if (node == header) { throw new NoSuchElementException(); } Object oldValue = node.getValue(); removeNode(node); return oldValue; }
public Object set(int index, Object value) { Node node = getNode(index, false); Object oldValue = node.getValue(); updateNode(node, value); return oldValue; }
public Object remove(int index) { Node node = getNode(index, false); Object oldValue = node.getValue(); removeNode(node); return oldValue; }
public Object get(int index) { Node node = getNode(index, false); return node.getValue(); }
public Object removeFirst() { Node node = header.next; if (node == header) { throw new NoSuchElementException(); } Object oldValue = node.getValue(); removeNode(node); return oldValue; }
public Object next() { checkModCount(); if (!hasNext()) { throw new NoSuchElementException("No element at index " + nextIndex + "."); } Object value = next.getValue(); current = next; next = next.next; nextIndex++; return value; }
public int indexOf(Object value) { int i = 0; for (Node node = header.next; node != header; node = node.next) { if (isEqualValue(node.getValue(), value)) { return i; } i++; } return -1; }
public Object previous() { checkModCount(); if (!hasPrevious()) { throw new NoSuchElementException("Already at start of list."); } next = next.previous; Object value = next.getValue(); current = next; nextIndex--; return value; }
public boolean remove(Object value) { for (Node node = header.next; node != header; node = node.next) { if (isEqualValue(node.getValue(), value)) { removeNode(node); return true; } } return false; }
public int lastIndexOf(Object value) { int i = size - 1; for (Node node = header.previous; node != header; node = node.previous) { if (isEqualValue(node.getValue(), value)) { return i; } i--; } return -1; }