簡體   English   中英

節點類在LinkedList類中做了什么

[英]What does node class do in LinkedList class

我試圖理解Java如何創建節點,即制作鏈表。所以我檢查了LinkedList.java文件,我在鏈表類中看到了一個內部節點類,那么這個內部節點類是否負責實際創建節點?

另外,當我們使用這個類時,我們會說創建的對象是LinkedList Class還是Node Class?

 public class LinkedList<E>
  extends AbstractSequentialList<E>
  implements List<E>, Deque<E>, Cloneable, java.io.Serializable
  {

private static class Node<E> {
    E item;
    Node<E> next;
    Node<E> prev;
    Node(Node<E> prev, E element, Node<E> next) {
        this.item = element;
        this.next = next;
        this.prev = prev;
    }
}

PS這不是重復我試圖理解節點類在內置的LinkedList類中做什么,這是一個雙鏈表。在另一個問題中,他們正在創建一個新的單鏈表

鏈表是一種線性數據結構,其中每個元素都是一個單獨的對象。 列表的每個元素(我們將其稱為節點)包括數據和對下一節點和前一節點的引用。 最后一個節點具有null引用。

鏈表中的每個元素都是節點,它實際上保存數據,前一個和下一個引用。

由於鏈表支持對下一個元素的引用,我們需要有一個保存數據和引用的節點。

參考鏈接列表

這種實現主要是因為在LinkedList中保留了Node或增加了封裝。

基本上內部類(這里是Node類)特別是當該類除了在另一個單獨的類中使用之外沒有其他用途時使用。

例如,在此實現中,Node被聲明為內部類,因為該節點只能存在於鏈表中。 如果沒有鏈表,單個節點將毫無用處。

並且此Node類只能在實例化鏈表后立即實例化。 因此,這支持了沒有鏈表的情況下沒有節點可以存在的概念。

所以通常這個LinkedList和Node被綁定在一起,這樣Node就不存在而不創建LinkedList

內部Node類不負責創建節點。 節點,或實際上它代表鏈表中的節點。 由於項目可以是任何內容,並且LinkedList 想要鏈接項目(知道之前的內容和下一個項目的內容),因此需要Node抽象來保留項目和信息。

在此輸入圖像描述

所以LinkedList創建節點並連接它們。 它保留指向這些節點的第一個和最后一個的指針來管理連接,並避免在迭代時進入圓圈。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM