LinkList.add()源碼詳解

add源碼
/**
* Links e as last element.
*/
void linkLast(E e) {
final Node l = last;
final Node newNode = new Node<>(l, e, null);
last = newNode;
if (l == null)
first = newNode;
else
l.next = newNode;
size++;
modCount++;
}
以上是源碼,調用了LinkedList中linklast方法首先傳入一個將要添加的目標類型的元素(形參E e),
第一句final Node l=last;——設定一個常量Node類型的 l ,並將當前表的最後一個元素(last)
賦給l, 此時l指的就是當前鏈表的最後一個元素。
第二句final Node newNode = new Node<>(l, e, null);——創建一個newNode爲將要添加元素,並將前後指針
分別指向了l(未添加時鏈表最後一個元素)、null元素。
第三句 last = newNode;——把newNode改變爲鏈表末尾元素,原來的末尾元素成爲前一個元素。
下一塊 if-else——判斷未添加是當前鏈表末尾元素是否爲空,是則證明鏈表爲空,則將添加元素作爲第一個元素,
否則不爲空,再把原先的末尾元素 l 的後指針指向newNode。
最後,將鏈表容量+1,修改次數+1;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章