【问题标题】:Data structure - Array数据结构 - 数组
【发布时间】:2016-10-08 06:10:05
【问题描述】:

Here 它说:

数组之所以有用主要是因为可以计算元素索引 在运行时。除其他外,此功能允许单个 用于处理任意多个数组元素的迭代语句。 因此,需要数组数据结构的元素 具有相同的大小并应使用相同的数据表示。

现代语言仍然如此吗?

例如,Java,你可以有一个对象或字符串数​​组,对吧?每个对象或字符串可以有不同的长度。我是否误解了上面的引用,或者像 Java 这样的语言以不同的方式实现了 Array?怎么样?

【问题讨论】:

    标签: arrays data-structures


    【解决方案1】:

    在 java 中,除了原语之外的所有类型都是引用类型,这意味着它们是指向由 JVM 操作的某个内存位置的指针。

    但编程语言主要有两种类型,fixed-typed like Java and C++ and dynamically-typed like python and PHP。在fixed-typed 语言中,无论StringObject 还是...
    ,您的数组都应包含相同的类型 但在dynamically-typed 中,有更多的抽象,你可以在数组中有不同的数据类型(虽然我不知道实际的实现)。

    【讨论】:

    • @RyanVincent,谢谢你,更新了答案。 :)
    【解决方案2】:

    数组是内存中数据的规则排列。想象一排士兵,排成一列,每个人之间的间距完全相等。

    因此可以通过从基地址查找来对它们进行索引。但所有项目必须是相同的大小。因此,如果它们不是,则存储指针或引用以使它们具有相同的大小。所有语言都使用该基础结构,除了有时称为“关联数组”的由键(通常为字符串)索引的结构,其中您有所谓的哈希表。本质上,散列函数将键转换为数组索引,并通过修复来解决冲突。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-29
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      • 1970-01-01
      • 2015-07-02
      • 1970-01-01
      相关资源
      最近更新 更多