中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用Java怎么獲取鏈表中的元素

發布時間:2021-02-22 16:06:49 來源:億速云 閱讀:376 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關利用Java怎么獲取鏈表中的元素,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

Java可以用來干什么

Java主要應用于:1. web開發;2. Android開發;3. 客戶端開發;4. 網頁開發;5. 企業級應用開發;6. Java大數據開發;7.游戲開發等。

一、獲取元素

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怎么獲取鏈表中的元素

看完上述內容,你們對利用Java怎么獲取鏈表中的元素有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

闻喜县| 山西省| 和龙市| 合阳县| 固阳县| 上饶市| 曲松县| 项城市| 宁河县| 安溪县| 延吉市| 中山市| 尤溪县| 嘉峪关市| 荥阳市| 从江县| 乌兰浩特市| 青浦区| 安仁县| 扶绥县| 云梦县| 金门县| 鸡泽县| 康乐县| 玛纳斯县| 岫岩| 兰坪| 延长县| 大兴区| 桃园县| 宣威市| 孟津县| 中西区| 云南省| 高唐县| 沽源县| 泸定县| 汾西县| 临湘市| 北票市| 南康市|