java中鏈表指的是什么?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!
鏈表是一種根據(jù)元素節(jié)點(diǎn)邏輯關(guān)系排列起來的一種數(shù)據(jù)結(jié)構(gòu)。本篇文章將和大家講述Java中的鏈表,感興趣的朋友可以了解一下。
鏈表是一種根據(jù)元素節(jié)點(diǎn)邏輯關(guān)系排列起來的一種數(shù)據(jù)結(jié)構(gòu)。利用鏈表可以保存多個(gè)數(shù)據(jù),這一點(diǎn)類似于數(shù)組的概念。
但是數(shù)組本身有一個(gè)缺點(diǎn)—— 數(shù)組的長度固定,不可改變,在長度固定的情況下選的肯定是數(shù)組,但是在現(xiàn)實(shí)的開發(fā)之中往往要保存的內(nèi)容長度是不確定的,那么此時(shí)就可以利用鏈表這樣的結(jié)構(gòu)來代替數(shù)組的使用。
鏈表是一種最為簡單的數(shù)據(jù)結(jié)構(gòu),它的主要目的是依靠引用關(guān)系來實(shí)現(xiàn)多個(gè)數(shù)據(jù)的保存,那么下面假設(shè)現(xiàn)在要保存的數(shù)據(jù)是字符串(引用類型),則可以按照?qǐng)D所示的關(guān)系進(jìn)行保存。
Java實(shí)現(xiàn)鏈表代碼:
//每一個(gè)鏈表實(shí)際上就是由多個(gè)節(jié)點(diǎn)組成的 public class Node { // 定義一個(gè)節(jié)點(diǎn) private String data; // 用于保存數(shù)據(jù) private Node next; // 用于保存下一個(gè)節(jié)點(diǎn) // 每一個(gè)Node類對(duì)象都必須保存有響應(yīng)的數(shù)據(jù) public Node(String data) { this.data = data; } public void setNext(Node next) { this.next = next; } public Node getNext() { return this.next; } public String getData() { return this.data; } // 實(shí)現(xiàn)節(jié)點(diǎn)的添加 // 第一次調(diào)用(Link):this代表Link.root // 第二次調(diào)用(Node):this代表Link.root.next // 第三次調(diào)用(Node):this代表Link.root.next.next public void addNode(Node newNode) { if (this.next == null) { // 如果只有一個(gè)節(jié)點(diǎn) this.next = newNode; // 保存新節(jié)點(diǎn) } else { // 當(dāng)前節(jié)點(diǎn)后面還有節(jié)點(diǎn) // 當(dāng)前節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)繼續(xù)保存 this.next.addNode(newNode); } } // 第一次調(diào)用(Link):this代表Link.root // 第二次調(diào)用(Node):this代表Link.root.next // 第三次調(diào)用(Node):this代表Link.root.next.next public void printNode() { System.out.println(this.data);// 輸出當(dāng)前數(shù)據(jù) if (this.next != null) {// 如果還有下一個(gè)節(jié)點(diǎn) this.next.printNode();// 輸出下一節(jié)點(diǎn) } } } public class LinkDemo { public static void main(String[] args) { Link link = new Link() ; link.add("hello"); //存放數(shù)據(jù) link.add("world"); link.add("wwww"); link.print(); //展示數(shù)據(jù) } } //負(fù)責(zé)數(shù)據(jù)的設(shè)置和輸出 public class Link { private Node root; //根節(jié)點(diǎn) //增加數(shù)據(jù) public void add (String data){ //為了設(shè)置數(shù)據(jù)的先后關(guān)系,所以將data包裝在一個(gè)Node類對(duì)象 Node newNode = new Node(data); if(this.root == null ){ //一個(gè)鏈表只有一個(gè)根節(jié)點(diǎn) this.root = newNode; //將新的節(jié)點(diǎn)設(shè)置為根節(jié)點(diǎn) }else{ //從root節(jié)點(diǎn)后找到合適的位置 this.root.addNode(newNode); } } //輸出數(shù)據(jù) public void print(){ if( this.root != null ){ this.root.printNode(); } } }
感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)java中鏈表指的是什么大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。