關(guān)于LinkedList集合對元素進行增查刪操作
ArrayList集合在查詢元素時速度很快,但在增刪元素時效率較低,為了克服這種局限性,可以使用List接口的另一個實現(xiàn)類LinkedList。LinkedList集合內(nèi)部包含有兩個Node類型的first和last屬性維護一個雙向循環(huán)鏈表,在鏈表中的每一個元素都使用引用的方式來記住它的前一個元素和后一個元素,從而可以將所有的元素彼此連接起來。當(dāng)插入一個新元素時,只需要修改元素之間的這種引用關(guān)系即可,刪除一個節(jié)點也是如此。正因為這樣的存儲結(jié)構(gòu),所以LinkedList集合對于元素的增刪操作表現(xiàn)出很高的效率,LinkedList集合添加元素和刪除元素的過程如圖所示。
在圖6-5中,通過兩張圖描述了LinkedList集合新增元素和刪除元素的過程。其中,左圖為新增一個元素,圖中的元素1和元素2在集合中彼此為前后關(guān)系,在它們之間新增一個元素時,只需要讓元素1記住它后面的元素是新元素,讓元素2記住它前面的元素為新元素就可以了。右圖為刪除元素,要想刪除元素1和元素2之間的元素3,只需要讓元素1與元素2變成前后關(guān)系就可以了。LinkedList集合除了從接口Collection和List中繼承并實現(xiàn)了集合操作方法外,還專門針對元素的增刪操作定義了一些特有的方法,如下所示。
方法聲明 | 功能描述 |
void add(int index, E element | 在此列表中指定的位置插入指定的元素。 |
void addFirst(Object o) | 將指定元素插入集合的開頭 |
void addLast(Object o) | 將指定元素添加到集合的結(jié)尾 |
Object getFirst(O | 返回集合的第一個元素 |
Object getLast() | 返回集合的最后一個元素 |
Object removeFirst() | 移除并返回集合的第一個元素 |
Object removeLast() | 移除并返回集合的最后一個元素 |
boolean offer(Object o) | 將指定元素添加到集合的結(jié)尾 |
boolean offerFirst(Object o) | 將指定元素添加到集合的開頭 |
boolean offerLast(Object o) | 將指定元素添加到集合的結(jié)尾 |
Object peek() | 獲取集合的第一個元素 |
Object peekFirst() | 獲取集合的第一個元素 |
Object peekLast( | 獲取集合的最后一個元素 |
Object poll(0 | 移除并返回集合的第一個元素 |
Object pollFirst() | 移除并返回集合的第一個元素 |
Object pollLast() | 移除并返回集合的最后一個元素 |
void push(Object o) | 將指定元素添加到集合的開頭 |
Object pop0 | 移除并返回集合的第一個元素 |
上表中,列出的方法主要針對集合中的元素進行增加、刪除和獲取操作,接下來通過一個案例來學(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();//獲取集合第一個元素System.out.println(object);// 輸出集合中的元素// 3、刪除元素 link.removeFirst();// 刪除集合第一個元素 link.pollLast();// 刪除集合最后一個元素System.out.println(link);20}21}
運行結(jié)果如下圖所示。
在文件Example02.java首先創(chuàng)建了一個LinkedList集合,接著分別使用add()、offer()、push()方法向集合中插入元素,然后使用peek()方法獲取了集合的第一個元素,最后分別使用removeFirst()、pollLast()方法將集合中指定位置的元素移除,這樣就完成了元素的增、查、刪操作。由此可見,使用LinkedList對元素進行增刪操作是非常便捷的。
到此這篇關(guān)于關(guān)于LinkedList集合對元素進行增查刪操作的文章就介紹到這了,更多相關(guān)LinkedList集合增查刪內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringCloud Alibaba Nacos 整合SpringBoot A
這篇文章主要介紹了SpringCloud Alibaba Nacos 整合SpringBoot Admin實戰(zhàn),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12使用Idea或Datagrip導(dǎo)入excel數(shù)據(jù)的方法
這篇文章主要介紹了使用Idea或Datagrip導(dǎo)入excel數(shù)據(jù)的方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11dom4j創(chuàng)建和解析xml文檔的實現(xiàn)方法
下面小編就為大家?guī)硪黄猟om4j創(chuàng)建和解析xml文檔的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06java中synchronized Lock(本地同步)鎖的8種情況
本文主要介紹了java中synchronized Lock(本地同步)鎖的8種情況,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09springboot打包實現(xiàn)項目JAR包和依賴JAR包分離
這篇文章主要介紹了springboot打包實現(xiàn)項目JAR包和依賴JAR包分離,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02java創(chuàng)建一個類實現(xiàn)讀取一個文件中的每一行顯示出來
下面小編就為大家?guī)硪黄猨ava創(chuàng)建一個類實現(xiàn)讀取一個文件中的每一行顯示出來的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01