LinkedList Source code 1.6

private transient Entry header = new Entry(null, null, null);

private?transient?int?size?=?0;

/**

*?Constructs?an?empty?list.

*/

public?LinkedList()?{

header.next?=?header.previous?=?header;

}

LinkedList 是一個雙向鏈表

表頭和表位都是header同一對象

header->e->e->e->header

兩個header是同一對象

這樣就形成了閉環(huán),只要有header對象,無論從前向后還是從后向前都能追溯到元素

get()方法體現(xiàn)了這一特點(diǎn)

public?E?get(int?index)?{

return?entry(index).element;

}

/**

*?Returns?the?indexed?entry.

*/

private?Entry?entry(int?index)?{

if?(index?<?0?||?index?>=?size)

throw?new?IndexOutOfBoundsException("Index:?"+index+

",?Size:?"+size);

Entry?e?=?header;

if?(index?<?(size?>>?1))?{

for?(int?i?=?0;?i?<=?index;?i++)

e?=?e.next;

}?else?{

for?(int?i?=?size;?i?>?index;?i--)

e?=?e.previous;

}

return?e;

}

遍歷

public?Object[]?toArray()?{

Object[]?result?=?new?Object[size];

int?i?=?0;

for?(Entry?e?=?header.next;?e?!=?header;?e?=?e.next)

result[i++]?=?e.element;

return?result;

}

linkedlist 對刪除倒庵、增加的效率比較高

查詢的效率因?yàn)橐粩嗟难刂湵聿樵兯孕氏鄬Ρ容^慢

尾插法插入集合

public?boolean?addAll(int?index,?Collection?c)?{

if?(index?<?0?||?index?>?size)

throw?new?IndexOutOfBoundsException("Index:?"+index+

",?Size:?"+size);

Object[]?a?=?c.toArray();

int?numNew?=?a.length;

if?(numNew==0)

return?false;

modCount++;

Entry?successor?=?(index==size???header?:?entry(index));

Entry?predecessor?=?successor.previous;

for?(int?i=0;?i

Entry?e?=?new?Entry((E)a[i],?successor,?predecessor);

predecessor.next?=?e;

predecessor?=?e;

}

successor.previous?=?predecessor;

size?+=?numNew;

return?true;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末榛做,一起剝皮案震驚了整個濱河市聊训,隨后出現(xiàn)的幾起案子窒篱,更是在濱河造成了極大的恐慌咆霜,老刑警劉巖穷绵,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件忆矛,死亡現(xiàn)場離奇詭異,居然都是意外死亡请垛,警方通過查閱死者的電腦和手機(jī)催训,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宗收,“玉大人漫拭,你說我怎么就攤上這事』旎” “怎么了采驻?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長匈勋。 經(jīng)常有香客問我礼旅,道長,這世上最難降的妖魔是什么洽洁? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任痘系,我火速辦了婚禮,結(jié)果婚禮上饿自,老公的妹妹穿的比我還像新娘汰翠。我一直安慰自己龄坪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布复唤。 她就那樣靜靜地躺著健田,像睡著了一般。 火紅的嫁衣襯著肌膚如雪佛纫。 梳的紋絲不亂的頭發(fā)上妓局,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機(jī)與錄音呈宇,去河邊找鬼好爬。 笑死,一個胖子當(dāng)著我的面吹牛攒盈,可吹牛的內(nèi)容都是我干的抵拘。 我是一名探鬼主播哎榴,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼型豁,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了尚蝌?” 一聲冷哼從身側(cè)響起迎变,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎飘言,沒想到半個月后衣形,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡姿鸿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年谆吴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苛预。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡句狼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出热某,到底是詐尸還是另有隱情腻菇,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布昔馋,位于F島的核電站筹吐,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏秘遏。R本人自食惡果不足惜丘薛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望邦危。 院中可真熱鬧榔袋,春花似錦周拐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吏够,卻和暖如春勾给,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背锅知。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工播急, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人售睹。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓桩警,卻偏偏與公主長得像,于是被迫代替她去往敵國和親昌妹。 傳聞我的和親對象是個殘疾皇子捶枢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,724評論 0 33
  • ``` /* * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject ...
    非專業(yè)碼農(nóng)閱讀 332評論 0 0
  • 臨近春節(jié),很多消費(fèi)者忽然發(fā)現(xiàn)固歪,滴滴打車很難叫到車蒜鸡,如果不加價(jià),不加很多價(jià)牢裳,就基本上沒法叫到車逢防;在路邊想招手?jǐn)r車,也...
    五月菡萏閱讀 291評論 0 0
  • 夜色茫茫蒲讯,寒風(fēng)在車窗外呼嘯忘朝。車子在道路上疾馳,兩旁的樹木伶椿,飛速而過辜伟,就像是進(jìn)了一個怪物的血盆大口。許克把車速開到了...
    熊路漫閱讀 646評論 2 7
  • 懂事起,我知道父親流過兩次淚。 第一次归斤,我沒親眼目睹,是聽母親說起的旱捧。父親送我去大學(xué)報(bào)道后自己坐火車回家,嚎啕大哭...
    往往時(shí)候閱讀 1,006評論 0 0