Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我们使用newlink.next时,实际会发生什么?不要告诉我它会转到下一个节点。检查下面我的类和描述_Java - Fatal编程技术网

Java 当我们使用newlink.next时,实际会发生什么?不要告诉我它会转到下一个节点。检查下面我的类和描述

Java 当我们使用newlink.next时,实际会发生什么?不要告诉我它会转到下一个节点。检查下面我的类和描述,java,Java,/* 这是我用java创建的链表类。我们都知道节点是存在的,我们会遍历它。但有一件事我没明白。 使用“链接下一步” 使用linkfirst,我们使用newlink.next=first;请先参阅函数插入 它实际上是如何工作的? 接下来,newlink,首先是类链接引用。 当我们使用newlink.next或first.next时,内部实际发生了什么 什么是节点?它们是对象还是引用还是什么 */ 当我们使用newlink.next时,实际会发生什么 在您向我们展示的代码中,您没有执行newlink

/* 这是我用java创建的链表类。我们都知道节点是存在的,我们会遍历它。但有一件事我没明白。 使用“链接下一步” 使用linkfirst,我们使用newlink.next=first;请先参阅函数插入

它实际上是如何工作的? 接下来,newlink,首先是类链接引用。 当我们使用newlink.next或first.next时,内部实际发生了什么

什么是节点?它们是对象还是引用还是什么

*/

当我们使用newlink.next时,实际会发生什么

在您向我们展示的代码中,您没有执行newlink.next。你实际做的是:

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;