今天就跟大家聊聊有關(guān)利用Java怎么獲取鏈表中的元素,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)主營太和網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,App定制開發(fā),太和h5微信小程序搭建,太和網(wǎng)站營銷推廣歡迎太和等地區(qū)企業(yè)咨詢
Java主要應(yīng)用于:1. web開發(fā);2. Android開發(fā);3. 客戶端開發(fā);4. 網(wǎng)頁開發(fā);5. 企業(yè)級應(yīng)用開發(fā);6. Java大數(shù)據(jù)開發(fā);7.游戲開發(fā)等。
一、獲取元素
由于我們使用了虛擬頭結(jié)點(diǎn),而我們每次都需要從第一個(gè)真實(shí)節(jié)點(diǎn)開始,因此需要首先得到虛擬頭結(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)是誰,然后在此基礎(chǔ)上進(jìn)行遍歷工作,相關(guān)代碼如下:
//獲取鏈表的第index(0-based)個(gè)位置的元素 (實(shí)際不常用,練習(xí)用) public E get(int index) { //合法性判斷 if (index < 0 || index >= size) { throw new IllegalArgumentException("Get failed,Illegal index"); } Nodecur = dummyHead.next; for (int i = 0; i < index; i++) { cur = cur.next; } return cur.e; }
對于該方法則是依靠在get()方法的。
//獲得鏈表的第一個(gè)元素 public E getFirst() { return get(0); }
對于該方法頁是依靠在get()方法的。
//獲得鏈表的最后一個(gè)元素 public E getLast() { return get(size - 1); }
由于我們使用了虛擬頭結(jié)點(diǎn),而我們每次都需要從第一個(gè)真實(shí)節(jié)點(diǎn)開始,因此需要首先得到虛擬頭結(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)是誰,然后在此基礎(chǔ)上進(jìn)行遍歷工作,相關(guān)代碼如下:
//修改鏈表的第index(0-based)個(gè)位置的元素 (實(shí)際不常用,練習(xí)用) public void set(int index, E e) { //合法性判斷 if (index < 0 || index >= size) { throw new IllegalArgumentException("update failed,Illegal index"); } Nodecur = dummyHead.next; for (int i = 0; i < index; i++) { cur = cur.next; } cur.e = e; }
由于我們使用了虛擬頭結(jié)點(diǎn),而我們每次都需要從第一個(gè)真實(shí)節(jié)點(diǎn)開始,因此需要首先得到虛擬頭結(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)是誰,然后判斷給定的元素值與鏈表中的元素值內(nèi)容是否相等(equals()方法),若相等則返回true,否則返回false。
//查找鏈表中是否有元素e public boolean contains(E e) { Nodecur = dummyHead.next; while (cur != null) { if (cur.e.equals(e)) { return true; } cur = cur.next; } return false; }
為了在輸出該鏈表對象時(shí)可以查看相關(guān)自定義的信息,我們對toString()進(jìn)行重寫改造。
//重寫object類,便于測試 @Override public String toString() { StringBuilder res = new StringBuilder(); Nodecur = dummyHead.next; while (cur != null) { res.append(cur + "->"); cur = cur.next; } res.append("NULL"); return res.toString(); }
此時(shí)該方法等同于
//重寫object類,便于測試 @Override public String toString() { StringBuilder res = new StringBuilder(); for (Nodecur = dummyHead.next; cur != null; cur = cur.next) { res.append(cur + "->"); } res.append("NULL"); return res.toString(); }
新建一個(gè)main函數(shù),填寫相關(guān)測試代碼如下:
package LinkedList; public class TestMain { public static void main(String[] args) { LinkedListlinkedList = new LinkedList (); System.out.println("============在鏈表頭部添加============"); for (int i = 0; i < 5; i++) { linkedList.addFirst(i); System.out.println(linkedList); } System.out.println("============修改鏈表============"); linkedList.set(2,666); System.out.println(linkedList); } }
結(jié)果為:
看完上述內(nèi)容,你們對利用Java怎么獲取鏈表中的元素有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。