The Add Method
When adding, there are four cases to address:
Adding to an Empty List
Adding to the Head of the List
if (nextItem == head) {
Node<E> newNode = new Node<E>(obj);
newNode.next = nextItem;
nextItem.prev = newNode;
head = newNode;
}
...
size++;
index++;
Adding to the Tail of the List
if (nextItem == null) {
Node<E> newNode = new Node<E>(obj);
tail.next = newNode;
newNode.prev = tail;
tail = newNode
}
...
size++;
index++;
Adding to the Middle of the List
else {
Node<E> newNode = new Node<E>(obj);
newNode.prev = nextItem.prev;
nextItem.prev.next = newNode;
newNode.next = nextItem;
nextItem.prev = newNode;
}
...
size++;
index++;