亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java實(shí)現(xiàn)鏈表中元素的獲取、查詢和修改方法詳解

瀏覽:79日期:2022-09-04 13:23:22

本文實(shí)例講述了Java實(shí)現(xiàn)鏈表中元素的獲取、查詢和修改方法。分享給大家供大家參考,具體如下:

本節(jié)是在上一小節(jié)Java鏈表中添加元素的基礎(chǔ)上繼續(xù)完善我們的鏈表相關(guān)方法的編寫,在本節(jié)中我們著重對(duì)如何獲取鏈表中元素、查詢?cè)匾约靶薷脑剡M(jìn)行學(xué)習(xí)。

一、獲取元素1.關(guān)于獲取鏈表中元素的方法的分析

由于我們使用了虛擬頭結(jié)點(diǎn),而我們每次都需要從第一個(gè)真實(shí)節(jié)點(diǎn)開始,因此需要首先得到虛擬頭結(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)是誰(shuí),然后在此基礎(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'); } Node<E> cur = dummyHead.next; for (int i = 0; i < index; i++) { cur = cur.next; } return cur.e; }2.獲得鏈表的第一個(gè)元素

對(duì)于該方法則是依靠在get()方法的。

//獲得鏈表的第一個(gè)元素 public E getFirst() { return get(0); }3.獲得鏈表的最后一個(gè)元素

對(duì)于該方法頁(yè)是依靠在get()方法的。

//獲得鏈表的最后一個(gè)元素 public E getLast() { return get(size - 1); }二、修改鏈表元素

由于我們使用了虛擬頭結(jié)點(diǎn),而我們每次都需要從第一個(gè)真實(shí)節(jié)點(diǎn)開始,因此需要首先得到虛擬頭結(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)是誰(shuí),然后在此基礎(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'); } Node<E> cur = dummyHead.next; for (int i = 0; i < index; i++) { cur = cur.next; } cur.e = e; }三、判斷是否有元素e

由于我們使用了虛擬頭結(jié)點(diǎn),而我們每次都需要從第一個(gè)真實(shí)節(jié)點(diǎn)開始,因此需要首先得到虛擬頭結(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)是誰(shuí),然后判斷給定的元素值與鏈表中的元素值內(nèi)容是否相等(equals()方法),若相等則返回true,否則返回false。

//查找鏈表中是否有元素e public boolean contains(E e) { Node<E> cur = dummyHead.next; while (cur != null) { if (cur.e.equals(e)) {return true; } cur = cur.next; } return false; }四、toString()方法的重寫

為了在輸出該鏈表對(duì)象時(shí)可以查看相關(guān)自定義的信息,我們對(duì)toString()進(jìn)行重寫改造。

//重寫object類,便于測(cè)試 @Override public String toString() { StringBuilder res = new StringBuilder(); Node<E> cur = dummyHead.next; while (cur != null) { res.append(cur + '->'); cur = cur.next; } res.append('NULL'); return res.toString(); }

此時(shí)該方法等同于

//重寫object類,便于測(cè)試 @Override public String toString() { StringBuilder res = new StringBuilder(); for (Node<E> cur = dummyHead.next; cur != null; cur = cur.next) { res.append(cur + '->'); } res.append('NULL'); return res.toString(); }五、測(cè)試

新建一個(gè)main函數(shù),填寫相關(guān)測(cè)試代碼如下:

package LinkedList;public class TestMain { public static void main(String[] args) { LinkedList<Integer> linkedList = new LinkedList<Integer>(); 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é)果為:

Java實(shí)現(xiàn)鏈表中元素的獲取、查詢和修改方法詳解

結(jié)果分析:由于是在鏈表頭部添加元素,故最終顯示結(jié)果為從右到左,最右為NULL(也就是最后一個(gè)節(jié)點(diǎn))。

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 麻豆传媒网站入口直接进入免费版 | 国产做受视频激情播放 | 三级精品 | 亚洲成人xxx | 99精选视频 | 国产无套普通话对白 | 国产欧美日韩第一页 | 亚洲精品一区最新 | 日本一级爽毛片在线看 | 国产精品久久久久久小说 | 久久精品国产欧美成人 | 国产成人在线免费观看 | 午夜精品久久久久久久爽 | 欧美性性性性性色大片免费的 | 亚洲最大情网站在线观看 | 中国黄色www | 国产综合日韩伦理 | 美女免费视频一区二区 | 国产黄色大全 | 国产精品亚洲国产三区 | 国产一级三级三级在线视 | 日本精品久久久一区二区三区 | 精品亚洲一区二区三区 | 欧美αv日韩αv亚洲αv在线观看 | 美女一级a毛片免费观看 | 亚洲欧美日韩特级毛片 | 国产色视频网站 | 二区视频在线 | 亚洲欧美日韩国产一区二区三区精品 | 久久青青草原精品无线观看 | 国产男女性做爽歪歪爱视频 | 一道精品视频一区二区三区图片 | 国产成人久久精品激情 | 免费观看好看的国产片 | 国产精品小黄鸭一区二区三区 | 日韩毛片在线播放 | 又黄又爽又猛大片录像 | 黄色一级毛片免费 | 又大又爽又湿又紧a视频 | 日韩性视频网站 | 草逼大片 |