一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java數(shù)據(jù)結(jié)構(gòu)之LinkedList的用法詳解

Java數(shù)據(jù)結(jié)構(gòu)之LinkedList的用法詳解

2023-05-09 01:05未知服務(wù)器之家 Java教程

鏈表(Linked list)是一種常見的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),是一種線性表,但是并不會按線性的順序存儲數(shù)據(jù),而是在每一個節(jié)點里存到下一個節(jié)點的地址 。鏈表可分為單向鏈表和雙向鏈表。 一個單向鏈表包含兩個值 : 當(dāng)前節(jié)點的值和一個指

鏈表(Linked list)是一種常見的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),是一種線性表,但是并不會按線性的順序存儲數(shù)據(jù),而是在每一個節(jié)點里存到下一個節(jié)點的地址。鏈表可分為單向鏈表和雙向鏈表。

一個單向鏈表包含兩個值: 當(dāng)前節(jié)點的值和一個指向下一個節(jié)點的鏈接。

Java數(shù)據(jù)結(jié)構(gòu)之LinkedList的用法詳解

創(chuàng)建一個簡單的鏈表實例:

import java.util.LinkedList;

public class RunoobTest {
    public static void main(String[] args) {
        LinkedList<String> sites = new LinkedList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");
        System.out.println(sites);
    }
}
// 實例執(zhí)行輸出結(jié)果為:
// [Google, Runoob, Taobao, Weibo]

更多的情況下我們使用 ArrayList 訪問列表中的隨機(jī)元素更加高效,但以下幾種情況 LinkedList 提供了更高效的方法

在列表開頭添加元素:

// 引入 LinkedList 類
import java.util.LinkedList;

public class RunoobTest {
    public static void main(String[] args) {
        LinkedList<String> sites = new LinkedList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        // 使用 addFirst() 在頭部添加元素
        sites.addFirst("Wiki");
        System.out.println(sites);
    }
}
// 實例執(zhí)行輸出結(jié)果為:
// [Wiki, Google, Runoob, Taobao]

在列表結(jié)尾添加元素:

// 引入 LinkedList 類
import java.util.LinkedList;

public class RunoobTest {
    public static void main(String[] args) {
        LinkedList<String> sites = new LinkedList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        // 使用 addLast() 在尾部添加元素
        sites.addLast("Wiki");
        System.out.println(sites);
    }
}
// 實例執(zhí)行輸出結(jié)果為:
// [Google, Runoob, Taobao, Wiki]

在列表開頭移除元素:

// 引入 LinkedList 類
import java.util.LinkedList;

public class RunoobTest {
    public static void main(String[] args) {
        LinkedList<String> sites = new LinkedList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");
        // 使用 removeFirst() 移除頭部元素
        sites.removeFirst();
        System.out.println(sites);
    }
}
// 實例執(zhí)行輸出結(jié)果為:
// [Runoob, Taobao, Weibo]

在列表結(jié)尾移除元素:

// 引入 LinkedList 類
import java.util.LinkedList;

public class RunoobTest {
    public static void main(String[] args) {
        LinkedList<String> sites = new LinkedList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");
        // 使用 removeLast() 移除尾部元素
        sites.removeLast();
        System.out.println(sites);
    }
}
// 實例執(zhí)行輸出結(jié)果為:
// [Google, Runoob, Taobao]

獲取列表開頭的元素:

// 引入 LinkedList 類
import java.util.LinkedList;

public class RunoobTest {
    public static void main(String[] args) {
        LinkedList<String> sites = new LinkedList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");
        // 使用 getFirst() 獲取頭部元素
        System.out.println(sites.getFirst());
    }
}
// 實例執(zhí)行輸出結(jié)果為:
// Google

獲取列表結(jié)尾的元素:

// 引入 LinkedList 類
import java.util.LinkedList;

public class RunoobTest {
    public static void main(String[] args) {
        LinkedList<String> sites = new LinkedList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");
        // 使用 getLast() 獲取尾部元素
        System.out.println(sites.getLast());
    }
}
// 實例執(zhí)行輸出結(jié)果為:
// Weibo

LinkedList 迭代元素方式

可以使用 for 配合 size() 方法來迭代列表中的元素:

// 引入 LinkedList 類
import java.util.LinkedList;

public class RunoobTest {
    public static void main(String[] args) {
        LinkedList<String> sites = new LinkedList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");
        for (int size = sites.size(), i = 0; i < size; i++) {
            System.out.println(sites.get(i));
        }
    }
}
// 實例執(zhí)行輸出結(jié)果為:
// Google
// Runoob
// Taobao
// Weibo

也可以使用 for-each 來迭代元素:

// 引入 LinkedList 類
import java.util.LinkedList;

public class RunoobTest {
    public static void main(String[] args) {
        LinkedList<String> sites = new LinkedList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");
        for (String i : sites) {
            System.out.println(i);
        }
    }
}
// 實例執(zhí)行輸出結(jié)果為:
// Google
// Runoob
// Taobao
// Weibo

LinkedList 常用方法

方法 描述
public boolean add(E e) 鏈表末尾添加元素,返回是否成功,成功為 true,失敗為 false
public void add(int index, E element) 向指定位置插入元素
public boolean addAll(Collection c) 將一個集合的所有元素添加到鏈表后面,返回是否成功,成功為 true,失敗為 false
public boolean addAll(int index, Collection c) 將一個集合的所有元素添加到鏈表的指定位置后面,返回是否成功,成功為 true,失敗為 false
public void addFirst(E e) 元素添加到頭部
public void addLast(E e) 元素添加到尾部
public boolean offer(E e) 向鏈表末尾添加元素,返回是否成功,成功為 true,失敗為 false
public boolean offerFirst(E e) 頭部插入元素,返回是否成功,成功為 true,失敗為 false
public boolean offerLast(E e) 尾部插入元素,返回是否成功,成功為 true,失敗為 false
public void clear() 清空鏈表
public E removeFirst() 刪除并返回第一個元素
public E removeLast() 刪除并返回最后一個元素
public boolean remove(Object o) 刪除某一元素,返回是否成功,成功為 true,失敗為 false
public E remove(int index) 刪除指定位置的元素
public E poll() 刪除并返回第一個元素
public E remove() 刪除并返回第一個元素
public boolean contains(Object o) 判斷是否含有某一元素
public E get(int index) 返回指定位置的元素
public E getFirst() 返回第一個元素
public E getLast() 返回最后一個元素
public int indexOf(Object o) 查找指定元素從前往后第一次出現(xiàn)的索引
public int lastIndexOf(Object o) 查找指定元素最后一次出現(xiàn)的索引
public E peek() 返回第一個元素
public E element() 返回第一個元素
public E peekFirst() 返回頭部元素
public E peekLast() 返回尾部元素
public E set(int index, E element) 設(shè)置指定位置的元素
public Object clone() 克隆該列表
public Iterator descendingIterator() 返回倒序迭代器
public int size() 返回鏈表元素個數(shù)
public ListIterator listIterator(int index) 返回從指定位置開始到末尾的迭代器
public Object[] toArray() 返回一個由鏈表元素組成的數(shù)組
public T[] toArray(T[] a) 返回一個由鏈表元素轉(zhuǎn)換類型而成的數(shù)組

以上就是Java數(shù)據(jù)結(jié)構(gòu)之LinkedList的用法詳解的詳細(xì)內(nèi)容,更多關(guān)于Java數(shù)據(jù)結(jié)構(gòu)LinkedList的資料請關(guān)注其它相關(guān)文章!

原文地址:https://juejin.cn/post/7230323015783546938

延伸 · 閱讀

精彩推薦
  • Java教程深入了解java NIO之Selector(選擇器)

    深入了解java NIO之Selector(選擇器)

    這篇文章主要介紹了java NIO之Selector(選擇器)的相關(guān)資料,文中講解非常詳細(xì),實例代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下...

    rickiyang5832020-07-02
  • Java教程Spring Boot創(chuàng)建可執(zhí)行jar包的實例教程

    Spring Boot創(chuàng)建可執(zhí)行jar包的實例教程

    這篇文章主要介紹了Spring Boot創(chuàng)建可執(zhí)行jar包的實例教程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    馬軍偉9052021-04-01
  • Java教程實例講解Java設(shè)計模式編程中的OCP開閉原則

    實例講解Java設(shè)計模式編程中的OCP開閉原則

    這篇文章主要介紹了Java設(shè)計模式編程中的開閉原則,開閉原則的大意被作者總結(jié)為用抽象構(gòu)建框架,用實現(xiàn)擴(kuò)展細(xì)節(jié),需要的朋友可以參考下 ...

    LoveLion5082020-03-26
  • Java教程Java JDBC自定義封裝工具類的步驟和完整代碼

    Java JDBC自定義封裝工具類的步驟和完整代碼

    這篇文章主要給大家介紹了關(guān)于Java JDBC自定義封裝工具類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值...

    陳明勇19994942021-08-16
  • Java教程JAVA中數(shù)組插入與刪除指定元素的實例代碼

    JAVA中數(shù)組插入與刪除指定元素的實例代碼

    下面小編就為大家分享一篇JAVA中數(shù)組插入與刪除指定元素的實例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    tangyaya88952021-03-31
  • Java教程Spring Cloud Eureka服務(wù)治理的實現(xiàn)

    Spring Cloud Eureka服務(wù)治理的實現(xiàn)

    服務(wù)治理是微服務(wù)框架中最為核心和基礎(chǔ)的模塊,它主要是用來實現(xiàn)各個微服務(wù)實例的自動化注冊與發(fā)現(xiàn)。這篇文章主要介紹了Spring Cloud Eureka服務(wù)治理的實...

    薛定餓7302021-05-08
  • Java教程Java多線程深入理解

    Java多線程深入理解

    這篇文章主要介紹了java多線程編程實例,分享了幾則多線程的實例代碼,具有一定參考價值,加深多線程編程的理解還是很有幫助的,需要的朋友可以參考...

    零陵上將軍_xdr7942021-10-27
  • Java教程用了這么久的RabbitMQ異步編程竟然都是錯的!

    用了這么久的RabbitMQ異步編程竟然都是錯的!

    RabbitMQ雖可將消息落地磁盤,即使MQ異常消息數(shù)據(jù)也不會丟失,但異步流程在消息發(fā)送、傳輸、處理等環(huán)節(jié),都可能發(fā)生消息丟失。所有MQ都無法確保百分百...

    JavaEdge3522020-12-01
主站蜘蛛池模板: 成人伊人亚洲人综合网站222 | 成人免费影院 | www91在线观看 | 久久www免费人成_看片高清 | 四虎欧美 | 天堂在线中文字幕 | 男女男精品网站免费观看 | 午夜伦理电影在线观免费 | 亚洲第一福利视频 | 成年人在线观看视频 | 日本无遮挡拍拍拍凤凰 | 公妇乱淫在线播放免费观看 | 成人免费毛片一区二区三区 | 青青青国产手机在线播放 | 鸭子玩富婆流白浆视频 | 古装床戏做爰无遮挡三级 | 含羞草国产亚洲精品岁国产精品 | 我的男友是消防员在线观看 | 亚洲免费视频播放 | 亚洲福利一区二区精品秒拍 | 男人资源站 | 成人永久免费福利视频网站 | 九九国产在线观看 | 日你逼 | 亚洲欧美视频在线播放 | boobsmilking流奶水野战 | 国产精品久久久久久爽爽爽 | 99热综合在线 | 高h喷水荡肉爽文np肉色文 | 女明星放荡高h日常生活 | 国内自拍网红在综合图区 | sao虎影院桃红视频在线观看 | 男女操bb | japanhd粗暴video| 国产一级一级一级成人毛片 | 91麻豆影视 | 久久亚洲精品AV无码四区 | 女人张开腿让男人做爽爽 | 99精品国产综合久久久久 | 亚洲精品第一国产综合高清 | 男人亚洲天堂 |