色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Java實現鏈表中元素的獲取、查詢和修改方法詳解

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

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

本節是在上一小節Java鏈表中添加元素的基礎上繼續完善我們的鏈表相關方法的編寫,在本節中我們著重對如何獲取鏈表中元素、查詢元素以及修改元素進行學習。

一、獲取元素1.關于獲取鏈表中元素的方法的分析

由于我們使用了虛擬頭結點,而我們每次都需要從第一個真實節點開始,因此需要首先得到虛擬頭結點的下一個節點是誰,然后在此基礎上進行遍歷工作,相關代碼如下:

//獲取鏈表的第index(0-based)個位置的元素 (實際不常用,練習用) 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.獲得鏈表的第一個元素

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

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

對于該方法頁是依靠在get()方法的。

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

由于我們使用了虛擬頭結點,而我們每次都需要從第一個真實節點開始,因此需要首先得到虛擬頭結點的下一個節點是誰,然后在此基礎上進行遍歷工作,相關代碼如下:

//修改鏈表的第index(0-based)個位置的元素 (實際不常用,練習用) 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

由于我們使用了虛擬頭結點,而我們每次都需要從第一個真實節點開始,因此需要首先得到虛擬頭結點的下一個節點是誰,然后判斷給定的元素值與鏈表中的元素值內容是否相等(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()方法的重寫

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

//重寫object類,便于測試 @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(); }

此時該方法等同于

//重寫object類,便于測試 @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(); }五、測試

新建一個main函數,填寫相關測試代碼如下:

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); }}

結果為:

Java實現鏈表中元素的獲取、查詢和修改方法詳解

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

更多關于java算法相關內容感興趣的讀者可查看本站專題:《Java數據結構與算法教程》、《Java操作DOM節點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》

希望本文所述對大家java程序設計有所幫助。

標簽: Java
相關文章:
主站蜘蛛池模板: a级毛片免费在线观看 | 美女毛片儿 | 亚洲 欧美 日韩中文字幕一区二区 | 欧美成人午夜片一一在线观看 | 韩国一级片视频 | 亚洲午夜久久久久影院 | 99国产精品欧美久久久久久影院 | 在线精品视频免费观看 | 老司机久久影院 | 成人免费精品视频 | 一区二区三区四区视频在线 | 一级毛片视频免费 | 免费播放特黄特色毛片 | 中文字幕s级优女区 | 美美女高清毛片视频黄的一免费 | 在线另类| 视频精品一区二区三区 | 久久tv免费国产高清 | 久久99毛片免费观看不卡 | 国产欧美精品午夜在线播放 | 日韩中文字幕一在线 | 亚洲无线一二三区2021 | 国产成人一区二区三区在线视频 | 亚洲欧美日韩另类精品一区二区三区 | 免费视频一区二区三区四区 | 高清免费国产在线观看 | 精品一区二区三区免费视频 | 国产欧美日韩综合精品一区二区三区 | 精品久久成人免费第三区 | 欧美日韩国产在线人成dvd | 久久这里有精品视频 | 欧美一级淫片免费观看 | 亚洲欧洲日产国码一级毛片 | 肥婆毛片 | 亚洲欧美久久 | 99精品这里只有精品高清视频 | 亚洲国产日韩a在线亚洲 | 国产日韩欧美综合一区二区三区 | 精品视频 九九九 | 99精品视频免费观看 | 亚洲精国产一区二区三区 |