什么是Node 在此链表中表示Java示例代码?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是Node 在此链表中表示Java示例代码?相关的知识,希望对你有一定的参考价值。

我正在研究链接列表,我不明白我的教科书中的这个例子。我理解泛型的概念(虽然在这一点上可能不太好)并在我自己的代码中实现了几个泛型类,我已经阅读并观看了很多教程,但我还是无法理解Node < E>实际上(实际上实际上是什么,它是一个类型吗?),所以我无法真正测试这段代码。

import java.util.*;

public class SinglyLinkedList<E> {

    private class Node<E> {
        private E element;
        private Node<E> next;

        public Node(E e, Node<E> n) {
            element = e;
            next = n;
        }

        public E getElement() { 
            return element; 
        }

        public Node<E> getNext() { 
            return next; 
        }

        public void setNext(Node<E> n) { 
            next = n; 
        }
    } 
}

我试图创建一个Node对象或一个SinglyLinkedList对象,如下所示:

SinglyLinkedList<E> NodeEl = new SinglyLinkedList<E>();
Node <E> node = new Node<E>();

并将各种物品传递给他们无济于事。我显然缺少一些东西,但我无法理解。

答案

class SinglyLinkedList<E>表示泛型类型的元素的链接列表。

例如,您可以使用以下命令创建Strings的链接列表:

SinglyLinkedList<String> list = new SinglyLinkedList<String>();

class Node<E>SinglyLinkedList类的内部类。它表示链表中的单个链接,其中包含单个元素(泛型类型)和对下一个链接的引用。

由于NodeSinglyLinkedList的内部类,因此如果不提供封闭实例的实例(即SinglyLinkedList类的实例),则无法创建它的实例。

因此你只能写

Node<E> node = new Node<E>();

SinglyLinkedList类的内部实例(即非静态)方法,其中有一个封闭的实例(SinglyLinkedList类)可用。

也就是说,如果Node应该拥有与SinglyLinkedList元素类型相同类型的元素,那么它不应该是通用的。它可以简单地使用封闭类的泛型类型参数(SinglyLinkedList):

public class SinglyLinkedList<E> {

    private class Node {
        private E element;
        private Node next;

        public Node(E e, Node n) {
            element = e;
            next = n;
        }

        public E getElement() { 
            return element; 
        }

        public Node getNext() { 
            return next; 
        }

        public void setNext(Node n) { 
            next = n; 
        }
    } 
}

以上是关于什么是Node 在此链表中表示Java示例代码?的主要内容,如果未能解决你的问题,请参考以下文章

在数据库中表示三选项的最佳方式是啥?

AQS简单介绍

java中表示当前日期的前5年内的随机日期怎么表示

有没有办法在 RDF 中表示时间数据?

在java中表示树层次结构[重复]

有没有办法在 GraphQL 中表示键值对的对象