LinkedList的add原始碼 2

2021-10-22 16:53:21 字數 940 閱讀 1311

public

static

void

main

(string[

] args)

看看**

public

void

add(

int index, e element)

下面這個方法是檢查你要插入的位置是否在0到size之間,size就是當前鍊錶的長度。

checkpositionindex

(index)

/**

* returns the (non-null) node at the specified element index.

*/node

node

(int index)

else

}

這個方法很顯然是獲取原本位置在index的節點,而且我們可以看到,為了縮短執行時間,原始碼根據index是在鍊錶的後半部分還是前半部分選擇從前遍歷還是從後遍歷。

再看linkbefoe方法

/**

* inserts element e before non-null node succ.

*/void

linkbefore

(e e, node

succ)

我們可以看到succ就是當前下標為index的元素,pred是succ的前乙個元素,e就是要插入的元素,再新建乙個node,該node指向succ和pred,但是此時pred.next還是succ,succ.prev還是pred,所以接下來就是把succ.prev指向newnode,然後把pred.next指向newnode,這樣就插入成功了。

LinkedList的add原始碼 1

public static void main string args public boolean add e e 再檢視linklast方法 links e as last element.void linklast e e 因為我們新增沒有指定下標,所以就是新增在最後。pointer to l...

git 只add後reset,找add的檔案

手賤操作 git reset hard sha1恢復時,把add的內容直接覆蓋掉,找不到 了。因為只有add,git reflog無用,git fsck lost found 裡邊也找不到個啥。ps 至今未找到.git lost found other 資料夾在哪。真的奇了怪了。恢復方法 find ...

Calendar的add 方法介紹

public static date addyears date date,int amount public static date addmonths date date,int amount public static date addweeks date date,int amount pu...