首頁(yè)技術(shù)文章正文

LinkedList集合對(duì)元素進(jìn)行增、查、刪操作

更新時(shí)間:2022-03-22 來(lái)源:黑馬程序員 瀏覽量:

ArrayList集合在查詢?cè)貢r(shí)速度很快,但在增刪元素時(shí)效率較低,為了克服這種局限性,可以使用List接口的另一個(gè)實(shí)現(xiàn)類LinkedList。LinkedList集合內(nèi)部包含有兩個(gè)Node類型的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)了集合操作方法外,還專門針對(duì)元素的增刪操作定義了一些特有的方法,如下所示。

方法聲明功能描述
void add(int index, E element在此列表中指定的位置插入指定的元素。
void addFirst(Object o)將指定元素插入集合的開頭
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)將指定元素添加到集合的開頭
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)將指定元素添加到集合的開頭
Object pop0移除并返回集合的第一個(gè)元素

上表中,列出的方法主要針對(duì)集合中的元素進(jìn)行增加、刪除和獲取操作,接下來(lái)通過(guò)一個(gè)案例來(lái)學(xué)習(xí)LinkedList中常用方法的使用,如文件所示。

文件Example02.java

import java.util.LinkedList;
public class Example02 {
    3 public static void main(String[] args) {
        // 創(chuàng)建LinkedList集合
        LinkedList link = new LinkedList();
        // 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()方法將集合中指定位置的元素移除,這樣就完成了元素的增、查、刪操作。由此可見,使用LinkedList對(duì)元素進(jìn)行增刪操作是非常便捷的。






猜你喜歡:

python有哪些基礎(chǔ)操作?怎樣添加、刪除、修改列表元素?

什么是ArrayList?使用ArrayList集合存取元素

通過(guò)ArrayList集合實(shí)現(xiàn)學(xué)生管理系統(tǒng)

Java集合的分類有哪些?

黑馬程序員Java開發(fā)培訓(xùn)

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!