Java鏈表(Linked List)基本原理與實現(xiàn)方法入門示例
本文實例講述了Java鏈表(Linked List)基本原理與實現(xiàn)方法。分享給大家供大家參考,具體如下:
在分析鏈表之前,我們先來對之前的動態(tài)數(shù)組、棧、隊列總結(jié)一下:
(1)底層依托于靜態(tài)數(shù)組
(2)依靠resize解決固定容量問題

(3)是一種假的的動態(tài)數(shù)據(jù)結(jié)構(gòu)
1.什么是鏈表
可以從以下兩個部分來理解什么是鏈表
(1)最簡單的動態(tài)數(shù)據(jù)結(jié)構(gòu),是一種真正的動態(tài)數(shù)據(jù)結(jié)構(gòu);
(2)是一種數(shù)據(jù)的存儲方式,數(shù)據(jù)存儲在"節(jié)點"(Node)中
1.1結(jié)構(gòu)基本代碼:
class Node{
E e;
Node next;
}
1.2 圖示如下:

1.3 優(yōu)點、缺點
優(yōu)點:真正的動態(tài),不需要處理固定容量的問題
缺點:喪失了隨機訪問的能力,也就是不能通過索引進行訪問,只能next來進行查找
1.4數(shù)組與鏈表的對比

1.5 基本的鏈表節(jié)點結(jié)構(gòu)代碼:
新建一個package(LinkedList),然后新建一個類LinkedList,在該類中封裝一個私有的節(jié)點,便于后續(xù)對于節(jié)點的使用。
package LinkedList;
public class LinkedList<E> {
//將Node節(jié)點設(shè)計成私有的類中類
private class Node<E> {
public E e;
public Node next;
//兩個參數(shù)的構(gòu)造函數(shù)
public Node(E e, Node next) {
this.e = e;
this.next = next;
}
//一個參數(shù)的構(gòu)造函數(shù)
public Node(E e) {
this.e = e;
this.next = null;
}
//無參構(gòu)造函數(shù)
public Node() {
this(null, null);
}
@Override
public String toString() {
return e.toString();
}
}
}
在本小節(jié)中先是簡單了解了一下理論知識,然后把基本的鏈表節(jié)點結(jié)構(gòu)使用代碼來實現(xiàn),下一小節(jié)我們繼續(xù)來學(xué)習(xí)如何如何在鏈表中添加元素。
更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
Spring context:component-scan的使用及說明
這篇文章主要介紹了Spring context:component-scan的使用及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
關(guān)于Java8中map()和flatMap()的一些事
這篇文章主要給大家介紹了關(guān)于Java8中map()和flatMap()的一些事,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
Maven中Junit測試@Test等注解無法識別的問題及解決
這篇文章主要介紹了Maven中Junit測試@Test等注解無法識別的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
在Java中將List轉(zhuǎn)換為String輸出過程解析
這篇文章主要介紹了在Java中將List轉(zhuǎn)換為String輸出過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09

