Java 当我们使用newlink.next时,实际会发生什么?不要告诉我它会转到下一个节点。检查下面我的类和描述
/* 这是我用java创建的链表类。我们都知道节点是存在的,我们会遍历它。但有一件事我没明白。 使用“链接下一步” 使用linkfirst,我们使用newlink.next=first;请先参阅函数插入 它实际上是如何工作的? 接下来,newlink,首先是类链接引用。 当我们使用newlink.next或first.next时,内部实际发生了什么 什么是节点?它们是对象还是引用还是什么 */ 当我们使用newlink.next时,实际会发生什么 在您向我们展示的代码中,您没有执行newlink.next。你实际做的是:Java 当我们使用newlink.next时,实际会发生什么?不要告诉我它会转到下一个节点。检查下面我的类和描述,java,Java,/* 这是我用java创建的链表类。我们都知道节点是存在的,我们会遍历它。但有一件事我没明白。 使用“链接下一步” 使用linkfirst,我们使用newlink.next=first;请先参阅函数插入 它实际上是如何工作的? 接下来,newlink,首先是类链接引用。 当我们使用newlink.next或first.next时,内部实际发生了什么 什么是节点?它们是对象还是引用还是什么 */ 当我们使用newlink.next时,实际会发生什么 在您向我们展示的代码中,您没有执行newlink
class Link
{
int data;
Link next;
Link(int data)
{
this.data=data;
}
public String toString()
{
return "{"+data+"}";
}
}
class MyLinkList
{
Link first;
MyLinkList()
{
first=null; // list is empty
}
void insertFirst(int data)
{
Link newlink=new Link(data);
newlink.next=first;
first=newlink;
}
public String toString()
{
String str="";
Link current=first;
while(current!=null)
{
str=str+ current.toString();
current=current.next;
}
return str;
}
}
public class SinglyLinkedList {
public static void main(String[] args)
{
MyLinkList list=new MyLinkList();
list.insertFirst(52);
list.insertFirst(78);
System.out.println(list);
}
}
指定对newlink.next的引用
不要告诉我它将转到下一个节点
去定义它。这不是恰当的术语
当我们使用newlink.next或first.next时,内部实际发生了什么
newLink是一个局部变量,其类型为Link
第一个是MyLinkedList类的实例变量,其类型为Link
接下来是Link类的一个实例变量,其类型为Link
在每种情况下,变量可能包含对链接对象的引用或null
执行newlink.next或first.next时会发生什么情况取决于上下文:
newlink.next = first;
首先将链接引用指定给newlink引用的对象的下一个实例变量
newlink.next = first;
将newlink中的引用指定给当前MyLinkedList对象的第一个变量
获取当前引用的链接的下一个变量中的引用,并将其分配给当前。换句话说,它更新当前链接以引用下一个链接对象
什么是节点?它们是对象还是引用还是什么
我想你指的是链接实例。它们都是,这取决于您如何使用它们
但请记住,在Java中,您分配的是引用而不是对象。调试应用程序并检查值将为您提供更多的洞察力。
first = newlink;
current = current.next;