数据结构 - 数组

时间:2016-10-08 06:10:06

标签: arrays data-structures

Here它说:

  

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

现代语言仍然如此吗?

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

2 个答案:

答案 0 :(得分:1)

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

但主要有两种类型的编程语言,fixed-typed,如JavaC++ dynamically-typed,如pythonPHP。在fixed-typed种语言中,您的数组应包含相同类型,无论StringObject还是...... 但是在dynamically-typed中,有一些抽象,你可以在数组中有不同的数据类型(虽然我不知道实际的实现)。

答案 1 :(得分:1)

数组是内存中数据的常规排列。想想一群士兵,他们都在一条线上,每个人之间的间距完全相等。

因此可以通过从基地址查找来索引它们。但所有物品的尺寸必须相同。因此,如果它们不存在,则存储指针或引用以使它们具有相同的大小。所有语言都使用该底层结构,除了有时被称为"关联数组",通过键(通常是字符串)索引,其中你有所谓的哈希表。本质上,哈希函数将密钥转换为数组索引,并具有解决冲突的修复方法。