LinkedList のドキュメントを読んで、「ヘッダー」の使用法に少し戸惑いました。通常、ヘッダーはlinkedListの最初のノードです。しかし、ここでは、「ヘッダー」はリスト内のダミー ノードであり、リストの最初と最後のノードを指しているように見えるため、LinkedList は循環型になります。本当?
private transient Entry<E> header = new Entry<E>(null, null, null);
public LinkedList() {
header.next = header.previous = header;
}
public E getFirst() {
if (size==0)
throw new NoSuchElementException();
return header.next.element;
}
public E getLast() {
if (size==0)
throw new NoSuchElementException();
return header.previous.element;
}
public E removeFirst() {
return remove(header.next);
}