// 获取第一个元素public E getFirst() {final Node<E> f = first;if (f == null)throw new NoSuchElementException();return f.item;}
// 获取最后一个元素public E getLast() {final Node<E> l = last;if (l == null)throw new NoSuchElementException();return l.item;}
public E get(int index) {checkElementIndex(index);return node(index).item;}Node<E> node(int index) {// assert isElementIndex(index);if (index < (size >> 1)) { // 先判断index在左半部分还是右半部分,然后遍历Node<E> x = first;for (int i = 0; i < index; i++)x = x.next;return x;} else {Node<E> x = last;for (int i = size - 1; i > index; i--)x = x.prev;return x;}}
