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

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

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

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

【问题讨论】:

  • 即使对于链表,您也无法从中获取包含对下一个对象的引用的对象,除非您明确这样做。

标签: java arrays stack


【解决方案1】:

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

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

【讨论】:

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

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

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

see this link

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-28
      • 2017-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多