什么是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>
表示泛型类型的元素的链接列表。
例如,您可以使用以下命令创建String
s的链接列表:
SinglyLinkedList<String> list = new SinglyLinkedList<String>();
class Node<E>
是SinglyLinkedList
类的内部类。它表示链表中的单个链接,其中包含单个元素(泛型类型)和对下一个链接的引用。
由于Node
是SinglyLinkedList
的内部类,因此如果不提供封闭实例的实例(即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示例代码?的主要内容,如果未能解决你的问题,请参考以下文章