大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java中l(wèi)inkedlist的用法指南

Java中l(wèi)inkedlist的用法指南

更新時(shí)間:2020-06-09 16:25:35 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2899次

1.簡(jiǎn)介

LinkedList是 List和 Deque接口的雙鏈表實(shí)現(xiàn)。它實(shí)現(xiàn)所有可選的列表操作并允許所有元素(包括 null)。

2.特點(diǎn)

java中的LinkedList使用指南

您可以在下面找到LinkedList最重要的屬性:

索引到列表中的操作將從開(kāi)頭或結(jié)尾遍歷列表,以較接近指定索引為準(zhǔn)

它沒(méi)有同步,也就是說(shuō)線程是不安全的

它的Iterator和ListIterator迭代器是快速失敗的(fail-fast,這意味著在迭代器創(chuàng)建之后,如果修改了列表,將拋出一個(gè)ConcurrentModificationException)

每個(gè)元素都是一個(gè)節(jié)點(diǎn),它保留對(duì)下一個(gè)和前一個(gè)節(jié)點(diǎn)的引用

它維護(hù)插入順序

雖然LinkedList未同步,但我們可以通過(guò)調(diào)用

Collections.synchronizedList方法檢索它的同步版本,如:

List list = Collections.synchronizedList(new LinkedList(...));

3.與ArrayList的比較

雖然它們都實(shí)現(xiàn)了List接口,但它們具有不同的語(yǔ)義 - 這肯定會(huì)影響決定使用哪一個(gè)。

(1)結(jié)構(gòu)體

一個(gè)ArrayList的是由支持基于索引數(shù)據(jù)結(jié)構(gòu)陣列。它提供對(duì)其元素的隨機(jī)訪問(wèn),其性能等于O(1)。

另一方面,LinkedList將其數(shù)據(jù)存儲(chǔ)為元素列表,并且每個(gè)元素都鏈接到其前一個(gè)和下一個(gè)元素。在這種情況下,項(xiàng)目的搜索操作具有等于O(n)的執(zhí)行時(shí)間。

(2)操作

在LinkedList中項(xiàng)的插入,添加和刪除操作更快,因?yàn)楫?dāng)將元素添加到集合內(nèi)的某個(gè)任意位置時(shí),不需要調(diào)整數(shù)組大小或更新索引,只有周圍元素中的引用才會(huì)更改。

(3)內(nèi)存使用情況

鏈表比ArrayList的內(nèi)存消耗要大,因?yàn)樵诿恳粋€(gè)節(jié)點(diǎn)的鏈表存儲(chǔ)兩個(gè)引用,一個(gè)用于它的前一個(gè)元素,一個(gè)用于它的下一個(gè)元素,而ArrayList中僅保持?jǐn)?shù)據(jù)和它的索引。

4.用法

以下是一些代碼示例,展示了如何使用LinkedList:

(1)創(chuàng)建

LinkedList<Object> linkedList = new LinkedList<>();

(2)添加元素

LinkedList實(shí)現(xiàn)List和Deque接口,除了標(biāo)準(zhǔn)的add()和addAll()方法,你可以找到addFirst()和addLast(),它們分別在開(kāi)頭或結(jié)尾添加一個(gè)元素。

(3)刪除元素

與元素添加類似,此列表實(shí)現(xiàn)提供removeFirst()和removeLast()。

此外,還有方便的方法removeFirstOccurence()和removeLastOccurence()返回boolean(如果collection包含指定的元素,則為true)。

(4)隊(duì)列操作

Deque接口提供類似隊(duì)列的行為(實(shí)際上Deque擴(kuò)展了Queue接口):

linkedList.poll();
linkedList.pop();

這些方法檢索第一個(gè)元素并將其從列表中刪除。

這兩個(gè)方法之間的區(qū)別是如果有空元素pop()將拋出NoSuchElementException異常,而poll()則返回null。API pollFirst()和pollLast()也可用。

以下是push(Object o)工作原理:

linkedList.push(Object o);

其中將元素作為集合的頭部插入。

LinkedList有許多其他方法,其中大多數(shù)方法對(duì)于已經(jīng)使用過(guò)List的用戶應(yīng)該很熟悉。Deque提供的其他方法可能是“標(biāo)準(zhǔn)”方法的便捷替代方案。

5.結(jié)論

ArrayList通常是默認(rèn)的List實(shí)現(xiàn)。但是在持續(xù)的讀多于寫的場(chǎng)景(頻繁插入/刪除/更新)可能更適用LinkedList。

java中l(wèi)inkedlist的用法指南

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“java中l(wèi)inkedlist的用法指南”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 久久久久国产精品免费免费 | 中文国产欧美在线观看 | 国产成人女人视频在线观看 | 久久99久久99精品免观看麻豆 | 中文国产成人精品久久无广告 | 日本又黄又爽又色的免费视频 | 国产美女色视频 | 国产精品久久久久久久久久久久 | 亚洲精品乱码久久久久久蜜桃 | 99国产国人青青视频在线观看 | 天天射天天射天天干 | 黄黄视频免费看 | 久草免费资源视频 | 免费观看国产精品视频 | 5252色欧美在线男人的天堂 | 久久久国产99久久国产一 | 女胁师~牝奴隷调教 | 综合国产福利视频在线观看 | 亚洲国产人成中文幕一级二级 | 国产大陆亚洲精品国产 | 国产一级毛片夜一级毛片 | 天天做天天爱夜夜爽毛片毛片 | 91色综合 | 亚洲综合日韩中文字幕v在线 | 香蕉色香蕉在线视频 | 天天操2023| 国产免费一级高清淫曰本片 | 亚洲国产欧洲精品路线久久 | 欧美另类第一页 | 97一区二区三区 | 久草精品视频在线播放 | 老司机午夜视频在线观看 | 日本亚洲精品一区二区三区 | 欧美色欧美亚洲高清在线观看 | 欧美乱大交xxxxx按摩v | 欧美国产成人在线 | 久久爱avwww久久爱 | 99久久亚洲国产高清观看 | 黄色在线观看视频免费 | 精品一区二区久久久久久久网精 | 在线观看中文字幕国产 |