编程语言
首页 > 编程语言> > Java中的Linkedlist实现看起来不像C中的linkedlist

Java中的Linkedlist实现看起来不像C中的linkedlist

作者:互联网

我正在浏览LinkedList并看到了Java中的实现.回到我尝试并实现链接列表的日子里,它有指针和地址以及大量的努力工作.使用Java,实现更容易,但仍然需要我做一些事情.我从链接列表中了解到链接列表,其中1,2,3,4是链表的节点.
enter image description here

但是在java中,我遇到的代码让我想到了LinkedList,如下图

Java中链表的实现代码如下,

class LinkedListNode
{
    LinkedListNode nextNode = null;//consider this member variable
    int data;
    public LinkedListNode(int data)
    {
        this.data = data;
    }
    void appendItemToLinkedList(int newData)
    {
        LinkedListNode end = new LinkedListNode(newData);
        LinkedListNode temp = this;
        while (temp.nextNode != null) { temp = temp.nextNode; }
        temp.nextNode = end;

    }
}

public static void main(String[] args) 
    {
        LinkedListNode list = new LinkedListNode(10);
        list.appendItemToLinkedList(20);
        list.appendItemToLinkedList(30);
        list.appendItemToLinkedList(40);
        list.appendItemToLinkedList(50);
        list.appendItemToLinkedList(60);
    }

在图中,您可以清楚地看到节点对象位于其他节点对象内.它真的是一个链表.或者是一个容纳其他容器的父容器,依此类推?

解决方法:

第二个图是因为认为一个列表包含另一个列表(如果LinkedList类型是基本类型那样).

当您考虑一个LinkedList引用另一个时,会产生第一个图表.

由于LinkedList是引用类型,而不是基本类型,因此nextNode字段不会就地存储完整的LinkedList,而只会引用一个.因此,您的第一个图是正确的,即使在Java中也是如此.

也可以看看:

>另一个问题,“What’s the difference between primitive and reference types?”
> Java语言规范:Chapter 4.1, “Kinds of Types and Values”

标签:object-reference,java,c,linked-list
来源: https://codeday.me/bug/20190823/1700358.html