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

服務(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
主站蜘蛛池模板: 久久性综合亚洲精品电影网 | 跪趴好紧h | 色吊丝每日永久访问网站 | 国产成人愉拍精品 | 9191视频 | 4455永久在线视频观看 | 日本手机在线视频 | 97久久天天综合色天天综合色hd | 免费国产在线视频 | 欧美日韩国产另类一区二区三区 | bestialityvideo另类| 日韩精品成人a在线观看 | 香蕉国产人午夜视频在线观看 | 亚洲AVAV天堂AV在线网爱情 | 欧美男同猛男 videos 同性 | 亚洲啊v | 欧美成人乱弄视频 | 国产1区2区在线观看 | 性欧美xxxxxxx另类 | 4hu影院永久在线播放 | 久久99精品国产免费观看 | 免费看黄色大片 | 国产真实偷乱视频在线观看 | 婚色阿花在线全文免费笔 | 日本肉体xxxx69xxxx | 水多多凹凸福利视频导航 | 久久久精品国产免费A片胖妇女 | 2020韩国r级理论片在线观看 | 成人性色生活片免费网 | 99精品国产美女福到在线不卡 | 免费视频完整版在线观看网站 | 别停好爽好深好大好舒服视频 | 国产精品国产色综合色 | 欧美性一区二区三区 | 欧美一级片在线看 | 69成人网| 好大好硬好深好爽想要之黄蓉 | 2019aw网站| 交换余生在线播放免费 | 32pao强力打造免费高速高清 | 日本一区二区在线不卡 |