關(guān)于LinkedList集合對(duì)元素進(jìn)行增查刪操作
ArrayList集合在查詢(xún)?cè)貢r(shí)速度很快,但在增刪元素時(shí)效率較低,為了克服這種局限性,可以使用List接口的另一個(gè)實(shí)現(xiàn)類(lèi)LinkedList。LinkedList集合內(nèi)部包含有兩個(gè)Node類(lèi)型的first和last屬性維護(hù)一個(gè)雙向循環(huán)鏈表,在鏈表中的每一個(gè)元素都使用引用的方式來(lái)記住它的前一個(gè)元素和后一個(gè)元素,從而可以將所有的元素彼此連接起來(lái)。當(dāng)插入一個(gè)新元素時(shí),只需要修改元素之間的這種引用關(guān)系即可,刪除一個(gè)節(jié)點(diǎn)也是如此。正因?yàn)檫@樣的存儲(chǔ)結(jié)構(gòu),所以LinkedList集合對(duì)于元素的增刪操作表現(xiàn)出很高的效率,LinkedList集合添加元素和刪除元素的過(guò)程如圖所示。

在圖6-5中,通過(guò)兩張圖描述了LinkedList集合新增元素和刪除元素的過(guò)程。其中,左圖為新增一個(gè)元素,圖中的元素1和元素2在集合中彼此為前后關(guān)系,在它們之間新增一個(gè)元素時(shí),只需要讓元素1記住它后面的元素是新元素,讓元素2記住它前面的元素為新元素就可以了。右圖為刪除元素,要想刪除元素1和元素2之間的元素3,只需要讓元素1與元素2變成前后關(guān)系就可以了。LinkedList集合除了從接口Collection和List中繼承并實(shí)現(xiàn)了集合操作方法外,還專(zhuān)門(mén)針對(duì)元素的增刪操作定義了一些特有的方法,如下所示。
| 方法聲明 | 功能描述 |
| void add(int index, E element | 在此列表中指定的位置插入指定的元素。 |
| void addFirst(Object o) | 將指定元素插入集合的開(kāi)頭 |
| void addLast(Object o) | 將指定元素添加到集合的結(jié)尾 |
| Object getFirst(O | 返回集合的第一個(gè)元素 |
| Object getLast() | 返回集合的最后一個(gè)元素 |
| Object removeFirst() | 移除并返回集合的第一個(gè)元素 |
| Object removeLast() | 移除并返回集合的最后一個(gè)元素 |
| boolean offer(Object o) | 將指定元素添加到集合的結(jié)尾 |
| boolean offerFirst(Object o) | 將指定元素添加到集合的開(kāi)頭 |
| boolean offerLast(Object o) | 將指定元素添加到集合的結(jié)尾 |
| Object peek() | 獲取集合的第一個(gè)元素 |
| Object peekFirst() | 獲取集合的第一個(gè)元素 |
| Object peekLast( | 獲取集合的最后一個(gè)元素 |
| Object poll(0 | 移除并返回集合的第一個(gè)元素 |
| Object pollFirst() | 移除并返回集合的第一個(gè)元素 |
| Object pollLast() | 移除并返回集合的最后一個(gè)元素 |
| void push(Object o) | 將指定元素添加到集合的開(kāi)頭 |
| Object pop0 | 移除并返回集合的第一個(gè)元素 |
上表中,列出的方法主要針對(duì)集合中的元素進(jìn)行增加、刪除和獲取操作,接下來(lái)通過(guò)一個(gè)案例來(lái)學(xué)習(xí)LinkedList中常用方法的使用,如文件所示。
文件Example02.java
importjava.util.LinkedList;publicclassExample02{3publicstaticvoidmain(String[] args){// 創(chuàng)建LinkedList集合LinkedList link =newLinkedList();// 1、添加元素
link.add("stu1");
link.add("stu2");System.out.println(link);// 輸出集合中的元素
link.offer("offer");// 向集合尾部追加元素
link.push("push");// 向集合頭部添加元素System.out.println(link);// 輸出集合中的元素// 2、獲取元素Object object = link.peek();//獲取集合第一個(gè)元素System.out.println(object);// 輸出集合中的元素// 3、刪除元素
link.removeFirst();// 刪除集合第一個(gè)元素
link.pollLast();// 刪除集合最后一個(gè)元素System.out.println(link);20}21}運(yùn)行結(jié)果如下圖所示。

在文件Example02.java首先創(chuàng)建了一個(gè)LinkedList集合,接著分別使用add()、offer()、push()方法向集合中插入元素,然后使用peek()方法獲取了集合的第一個(gè)元素,最后分別使用removeFirst()、pollLast()方法將集合中指定位置的元素移除,這樣就完成了元素的增、查、刪操作。由此可見(jiàn),使用LinkedList對(duì)元素進(jìn)行增刪操作是非常便捷的。
到此這篇關(guān)于關(guān)于LinkedList集合對(duì)元素進(jìn)行增查刪操作的文章就介紹到這了,更多相關(guān)LinkedList集合增查刪內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java Selenium實(shí)現(xiàn)多窗口切換的示例代碼
這篇文章主要介紹了Java Selenium實(shí)現(xiàn)多窗口切換的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
JAVA發(fā)送HTTP請(qǐng)求的四種方式總結(jié)
這篇文章主要給大家介紹了關(guān)于JAVA發(fā)送HTTP請(qǐng)求的多種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Springboot項(xiàng)目啟動(dòng)不加載resources目錄下的文件問(wèn)題
這篇文章主要介紹了Springboot項(xiàng)目啟動(dòng)不加載resources目錄下的文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
快速解決springboot在yml配置了啟動(dòng)端口但啟動(dòng)還是8080問(wèn)題
這篇文章主要介紹了快速解決springboot在yml配置了啟動(dòng)端口但啟動(dòng)還是8080問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
詳解springmvc之json數(shù)據(jù)交互controller方法返回值為簡(jiǎn)單類(lèi)型
這篇文章主要介紹了springmvc之json數(shù)據(jù)交互controller方法返回值為簡(jiǎn)單類(lèi)型,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-05-05
Java數(shù)據(jù)結(jié)構(gòu)之棧與隊(duì)列實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于Java數(shù)據(jù)結(jié)構(gòu)之棧與隊(duì)列的相關(guān)資料,算是作為用java描述數(shù)據(jù)結(jié)構(gòu)的一個(gè)開(kāi)始,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-11-11
Mybatis統(tǒng)計(jì)sql運(yùn)行時(shí)間的兩種方式
這篇文章主要介紹了Mybatis統(tǒng)計(jì)sql運(yùn)行時(shí)間的方案,Spring?Boot?+?Mybatis?web項(xiàng)目,統(tǒng)計(jì)sql運(yùn)行時(shí)間,用于分析慢sql,優(yōu)化系統(tǒng)速度,方案有兩種:自定義實(shí)現(xiàn)?Interceptor和使用現(xiàn)有依賴(lài)庫(kù)(Druid),文中通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下2024-11-11

