Node<;E>;在这个链表中表示Java示例代码?
我正在学习链表,但我不理解课本上的这个例子。我理解泛型的概念(虽然在这一点上可能不是很好),并在我自己的代码中实现了几个泛型类,我已经阅读并观看了很多教程,但我仍然不能理解节点Node<;E>;在这个链表中表示Java示例代码?,java,generics,linked-list,nodes,Java,Generics,Linked List,Nodes,我正在学习链表,但我不理解课本上的这个例子。我理解泛型的概念(虽然在这一点上可能不是很好),并在我自己的代码中实现了几个泛型类,我已经阅读并观看了很多教程,但我仍然不能理解节点实际做了什么(实际上是什么,它是一种类型?),所以我不能真正测试这段代码 import java.util.*; public class SinglyLinkedList<E> { private class Node<E> { private E element;
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;
}
}
}
import java.util.*;
公共类单链接列表{
私有类节点{
私人电子元件;
私有节点下一步;
公共节点(E,节点n){
元素=e;
next=n;
}
公共E getElement(){
返回元素;
}
公共节点getNext(){
下一步返回;
}
public void setNext(节点n){
next=n;
}
}
}
例如,我尝试创建Node对象或SinglelyLinkedList对象,如下所示:
SinglyLinkedList<E> NodeEl = new SinglyLinkedList<E>();
Node <E> node = new Node<E>();
SinglyLinkedList NodeEl=newsinglyLinkedList();
节点=新节点();
把各种各样的东西传给他们都没有用。我显然遗漏了一些东西,但我不明白是什么。
类SingleyLinkedList
表示泛型类型元素的链接列表
例如,您可以使用以下命令创建字符串的链接列表:
SinglyLinkedList<String> list = new SinglyLinkedList<String>();
SinglyLinkedList
类的内部实例(即非静态)方法,其中有一个封闭实例(属于SinglyLinkedList
类)
也就是说,如果节点
应包含与SingleyLinkedList
的元素类型相同的元素,则它不应是泛型的。它可以简单地使用封闭类的泛型类型参数(SinglyLinkedList
):
公共类单链接列表{
私有类节点{
私人电子元件;
私有节点下一步;
公共节点(E,节点n){
元素=e;
next=n;
}
公共E getElement(){
返回元素;
}
公共节点getNext(){
下一步返回;
}
public void setNext(节点n){
next=n;
}
}
}
也粘贴导入语句。因为有多个类的名称节点具有不同的名称空间。@Shriram Done。我使用的唯一导入是java.utils.*,但是这本书实际上没有提到任何内容,这是我决定尝试的。谢谢你的回答,我认为现在它更清晰了,但我对实现仍然很模糊。编译器接受SinglyLinkedList=newsinglyLinkedList()但是我仍然不明白我该怎么处理这个对象。而且我似乎无法实例化一个节点,两者都是Node Node=new Node()代码>和节点节点=新节点()代码>不工作。@Sheenan我以为你发布了一个不完整的SingleLinkedList
类。我希望整个类包含add
和remove
等方法。只要节点
仍然是私有类,就不能从SingleLinkedList
类外部创建节点
的实例。
Node<E> node = new Node<E>();
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;
}
}
}