关于java:Nodeed类在LinkedList类中做什么

What does node class do in LinkedList class

我试图了解Java如何创建节点,即创建链表。因此,我检查了LinkedList.java文件,并在链表类中看到了一个内部节点类,所以这个内部节点类负责实际创建节点?

当我们使用此类时,还会说创建的对象是用于LinkedList类还是用于节点类?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 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;
    }
}

P.S这不是重复的,我试图了解在内置LinkedList类(一个双链表)中节点类在做什么,在另一个问题中,他们正在创建一个新的单链表


内部Node类不负责创建节点。它是节点,或者实际上是链表中的一个节点。由于项目可以是任何东西,并且LinkedList要链接项目(知道每个项目之前是什么,下一个项目是什么),因此需要Node抽象来保留项目和该信息。

enter


这种实现主要是由于LinkedListNode的保留或增强的封装。

基本上使用内部类(此处为Node类),尤其是当该类除了在另一个单个类内部使用之外没有其他用途时。

例如,在此实现中,节点被声明为内部类,因为该节点只能存在于链表中。如果没有链表,则单个节点将无效。

并且只能在实例化链表之后立即实例化此Node类。因此,这支持以下概念:没有链接列表就无法存在节点。

因此,通常将此LinkedList和Node绑定在一起,以便在不创建LinkedList

的情况下无法存在Node


链表是一个线性数据结构,其中每个元素都是一个单独的对象。列表的每个元素(我们称其为节点)都由数据以及对下一个节点和上一个节点的引用组成。最后一个节点引用了null。

链表中的每个元素都是node,它实际上包含数据,上一个引用和下一个引用。

由于链表支持对下一个元素的引用,因此我们需要有一个同时包含数据和引用的节点。

引用链接列表