Java Arrays - 数组中的每个元素是不是都持有指向下一个元素的指针

Posted

技术标签:

【中文标题】Java Arrays - 数组中的每个元素是不是都持有指向下一个元素的指针【英文标题】:Java Arrays - Do each element in array hold pointer to the next elementJava Arrays - 数组中的每个元素是否都持有指向下一个元素的指针 【发布时间】:2016-05-16 08:45:47 【问题描述】:

Java LinkedList 类使用双向链表来存储元素。

Java 中的数组是否使用单链表?

这就是java中数组和堆栈的不同之处吗?

【问题讨论】:

即使对于链表,您也无法从中获取包含对下一个对象的引用的对象,除非您明确这样做。 【参考方案1】:

没有。数组只是一个连续的内存块,可以检查其长度以确保您不会尝试访问数组边界之外的元素。

为了获取特定元素,VM 只需(至少在逻辑上)获取数组中数据的起始地址,然后加上索引乘以元素大小。

【讨论】:

谢谢 Jon Skeet - 很高兴您(*** 中最知名的用户)回答我的问题 :)。那么 Stack 与数组到底有什么不同。我知道堆栈不能像数组一样随机访问。为什么会这样? @user2048204:堆栈是一个类,而不是像数组这样的内置本机类型。我建议你看一下 Stack 的源代码,看看它是如何工作的。【参考方案2】:

堆栈遵循 LIFO。因此,首先输入的项目将是最后一个被删除的项目。

数组中的项目可以按任何顺序输入或删除。基本上每个成员访问都是使用索引完成的。这里没有严格的顺序来删除特定的元素。

see this link

【讨论】:

【参考方案3】:

数组与链表完全不同。对于链表,从列表中删除项目的复杂性比从数组中删除项目的成本更低。

【讨论】:

以上是关于Java Arrays - 数组中的每个元素是不是都持有指向下一个元素的指针的主要内容,如果未能解决你的问题,请参考以下文章

[java初探05]__数组的简单认识及Arrays类的常用方法

java-Arrays类

java.util.Arrays.fill方法

Java编程的逻辑 (31) - 剖析Arrays

java.util.Arrays类

Java数组声明创建和使用以及多维数组Arrays类稀疏数组