Java中的链表 - 在下一个存储地址

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的链表 - 在下一个存储地址相关的知识,希望对你有一定的参考价值。

java中链表的基本实现是:

class Node{
   int element;
   Node next;
 ......
}

我不明白的是,在类本身内声明的类的对象如何能够存储另一个数据成员的地址。不声明Node接下来启用下一个本身有一个元素部分然后再次下一个。这会无限期地发生,对吧?那么它是怎样工作的?

答案

不声明Node接下来启用下一个本身有一个元素部分然后再次下一个。这会无限期地发生,对吧?

这就是这种数据结构的力量。您可以无限期地添加它,而无需像在静态数组中那样调整大小。

如果您想知道,您将如何结束列表?设置Node next为null和中提琴!你有你的终端节点。

节点内的节点?我可能错了,但Java能够在同一个类中引用一个类实例,因为每个对象基本上都是一个知道其大小的指针。

C ++等价

class A {
    A *a;
}
另一答案

在Java中:

1)当我们声明一个类类型的变量时,只创建一个引用,即没有为该对象分配内存。要为对象分配内存,我们使用new()。

2)当将一个对象分配给另一个对象时,仅分配该引用。它不会复制成员变量。

因此,在链接列表中,我们通过将以下节点的引用分配给当前节点的“下一个”字段来链接两个节点。虽然不相关,但我想重要的是要意识到,与数组相比,链表确实需要额外的内存来存储指针变量。

以上是关于Java中的链表 - 在下一个存储地址的主要内容,如果未能解决你的问题,请参考以下文章

05 链表(下):如何轻松写出正确的链表代码?

利用java实现一个简单的链表结构

如何从java中的链表中删除一个对象?

从 O(1) 中的链表中删除任何元素 - Java vs C++

java里的链表到底是什么

HashMap源码解读