JDK7中 LinkedList
private 方法 private void linkFirst(E e)
在新添加元素时链表不会断裂?
代码来源于 JDK7
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;
// 此处没有执行 newNode.next = f; newNode.next 不会链接后面的元素
size++;
modCount++;
}
Kenapa pautan terputus?
f menunjuk kepada yang asal dahulu dan menetapkan Nod baharu baharu kepada yang pertama.
Pada masa ini, adalah dinilai bahawa jika senarai pautan asal kosong, maka yang terakhir juga yang pertama.
Jika ia tidak kosong, maka sebelum f<nod pertama asal>
Saya rasa sebab anda fikir pautan itu rosak adalah kerana anda tidak melihat mata pertama seterusnya ke f. Er, seterusnya telah diluluskan dalam Node
final Node<E> newNode = new Node<>(null, e, f);
kelas statik peribadi Node<E>